<?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>195709</bug_id>
          
          <creation_ts>2019-03-13 15:42:54 -0700</creation_ts>
          <short_desc>Web Inspector: Timelines - Import / Export Timeline Recordings</short_desc>
          <delta_ts>2019-03-18 11:18:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</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>
          <dependson>195642</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1516218</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-13 15:42:54 -0700</bug_when>
    <thetext>Timelines - Import / Export Timeline Recordings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516225</commentid>
    <comment_count>1</comment_count>
      <attachid>364587</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-13 16:01:09 -0700</bug_when>
    <thetext>Created attachment 364587
[PATCH] Proposed Fix

Blocked on HAR Import.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516419</commentid>
    <comment_count>2</comment_count>
      <attachid>364587</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-14 00:02:53 -0700</bug_when>
    <thetext>Comment on attachment 364587
[PATCH] Proposed Fix

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

&gt; LayoutTests/inspector/timeline/timeline-recording.html:18
&gt; +            InspectorTest.log(&quot;-- Loaded&quot;);

Using &quot;--&quot; makes it more confusing as to the boundaries of each test case, since the harness automatically prints the test case name with &quot;--&quot; at the beginning of the line.  I&apos;d prefer it if you just used &quot;-&quot;, or didn&apos;t have any prefix at all.

&gt; LayoutTests/inspector/timeline/timeline-recording.html:36
&gt; +            await InspectorTest.reloadPage();
&gt; +            await InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);

Cases like this are the only reason I don&apos;t like using `await`, as I&apos;d prefer to have the listener added before calling the function that may fire the event.  I&apos;ve found that a way &quot;around&quot; the issue is to use `Promise.all`.

```
    await Promise.all([
        InspectorTest.awaitEvent(FrontendTestHarness.Eevent.TestPageDidLoad),
        InspectorTest.reloadPage(),
    ]);
```

&gt; LayoutTests/inspector/timeline/timeline-recording.html:64
&gt; +            let filterKeys = new Set([&quot;startTime&quot;, &quot;endTime&quot;, &quot;time&quot;, &quot;records&quot;, &quot;displayName&quot;]);

Style: `const`.

&gt; LayoutTests/inspector/timeline/timeline-recording.html:79
&gt; +            // NOTE: This runs the toJSON handlers on the timeline records and more, which is important

What do you mean by &quot;and more&quot;?

&gt; LayoutTests/inspector/timeline/timeline-recording.html:80
&gt; +            // because importing expects the serialized form of the objects, not raw objects.

I&apos;d say &quot;not model objects&quot; rather than &quot;raw&quot;.

&gt; LayoutTests/inspector/timeline/timeline-recording.html:84
&gt; +            let recording = WI.TimelineRecording.import(identifier, jsonData, &quot;name&quot;);

Could we have a better (e.g. more unique) name?  How about &quot;TEST_NAME&quot;, or even just &quot;TEST&quot;?

&gt; Source/WebInspectorUI/ChangeLog:8
&gt; +        Timeline export saves TimelineRecording and TimelineOverview state.

Grammar.  This sentence is a fragment.

&gt; Source/WebInspectorUI/ChangeLog:9
&gt; +        The TimelineRecording includes all kinds of model objects such as

model objects, such as

&gt; Source/WebInspectorUI/ChangeLog:10
&gt; +        records, markers, memory pressure events. It also includes raw

markers, memory pressure events, etc.

&gt; Source/WebInspectorUI/ChangeLog:11
&gt; +        protocol data such as script profiler samples. TimelineOverview

protocol data, such as

&gt; Source/WebInspectorUI/ChangeLog:12
&gt; +        includes some of the view state to restore such as the selected

to restore, such as

&gt; Source/WebInspectorUI/ChangeLog:16
&gt; +        the records, markers, various events, and re-initializing more state.

records, markers, and other events, as well as re-initializing

&gt; Source/WebInspectorUI/ChangeLog:17
&gt; +        To finally display the imported recording the content view will

imported recording, the content

&gt; Source/WebInspectorUI/ChangeLog:46
&gt; +        Save data at the TimelineRecording level which can be used for export.

s/which/that

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:277
&gt; +    importRecording(jsonString, filename)

Similar functions to this in other managers have used `processJSON` as a name.  I&apos;d like to keep things consistent between managers.  Also, they accept an object as a parameter, so it makes it easier to write `WI.FileUtilities.importJSON((result) =&gt; WI.timelineManager.processJSON(result));`.

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:279
&gt; +        let json;

Please initialize this to some value (e.g. `null`).

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:283
&gt; +            WI.TimelineManager.synthesizeImportError(e);

We should return so that accessing `json` doesn&apos;t throw another exception below.

&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:301
&gt; +            oldRecording.unloaded(importing);

I&apos;m not sure this is the right move.  I don&apos;t think we should unload the existing recording, as an imported recording shouldn&apos;t change the ability for an existing recording to be able to start/stop additional recording (not to mention this may assert if the `oldRecording` was empty).  I&apos;d expect that importing a recording would just &quot;hide&quot; any existing recording by selecting the newly imported one so that the previously visible one is no longer visible.  Additionally, the start/stop/clear buttons should be disabled, as those operations don&apos;t make sense on something effectively constant.

&gt; Source/WebInspectorUI/UserInterface/Models/HeapAllocationsTimelineRecord.js:46
&gt; +        // NOTE: This just goes through and generates a new heap snapshot,
&gt; +        // it is not perfect but does what we want. It asynchronously creates
&gt; +        // a heap snapshot at the right time, and insert it into the active
&gt; +        // recording, which on an import should be the newly imported recording.

Why not just make `fromJSON` async, and have the entire import process become `async`?  The Audit import export uses that method and works great :)

&gt; Source/WebInspectorUI/UserInterface/Models/ResourceTimelineRecord.js:50
&gt; +            entry: WI.HARBuilder.entry(this._resource, &quot;&quot;),

This is a perfect example of where a `const` parameter or a object-bag would be awesome.  I had to go look at HARBuilder to understand what the `&quot;&quot;` means :(

Please add a `const content = &quot;&quot;;` so that anyone else like me doesn&apos;t have to go searching through code.

&gt; Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js:-199
&gt; -    GarbageCollected: &quot;script-timeline-record-garbage-collected&quot;,

This is used as a CSS class name, so you&apos;ll have to adjust TimelineRecordBar.css for this as well.

&gt; Source/WebInspectorUI/UserInterface/Models/SourceMapResource.js:77
&gt; -    requestContentFromBackend(callback)
&gt; +    requestContentFromBackend()

While I&apos;m not against this change, is there a reason for it being in this patch?  Just a drive-by, or something more?

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecord.js:67
&gt; +            console.error(&quot;Unknown TimelineRecord.Type: &quot; + json.type);

I&apos;d also recommend logging `json` as another argument so that if inspector2 is open, we can immediately see information about it without having to try to reproduce it.

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecord.js:74
&gt; +        throw WI.NotImplementedError.subclassMustOverride();

Given that every subclass exports `this.type`, perhaps we can do a multilevel approach to this, where the subclasses call `super.toJSON()` and then add their own keys/values to the returned object.

```
    toJSON()
    {
        console.assert(this.constructor !== WI.TimelineRecord &amp;&amp; this instanceof WI.TimelineRecord);

        return {
            type: this.type,
        };
    }
```

And then a subclass could call it.

```
    toJSON()
    {
        let json = super.toJSON();
        json.x = 1;
        json.y = 2;
        return json;
    }
```

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:90
&gt; +        recording.initializeCallingContextTrees(sampleStackTraces, sampleDurations);

Should this happen after we add all of the records, seeing as the ScriptProfiler sends this data after the recording has stopped (e.g. &quot;mimic&quot; behavior)?

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:108
&gt; +        // Add markers once we&apos;ve transitioned the active recording.

Is there an event we can add a `singleFireEventListener` to instead, like `WI.TimelineManager.Event.RecordingImported`?

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:136
&gt; +            instrumentTypes: this._instruments.map((x) =&gt; x.timelineRecordType),

NIT: I&apos;d prefer you use a more descriptive variable name, seeing as the value is known to be of a specific type/shape.

```
    instrumentTypes: this._instruments.map((instrument) =&gt; instrument.timelineRecordType),
```

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:429
&gt; +        this._exportDataSampleStackTraces = stackTraces;
&gt; +        this._exportDataSampleDurations = sampleDurations;

Shouldn&apos;t this be an additive process (e.g. `Array.prototype.concat`)?  If we start/stop a single recording multiple times, we&apos;ll end up calling this each time, which will override it each time.

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:434
&gt; +        let topDownCallingContextTree = this._topDownCallingContextTree;
&gt; +        let bottomUpCallingContextTree = this._bottomUpCallingContextTree;
&gt; +        let topFunctionsTopDownCallingContextTree = this._topFunctionsTopDownCallingContextTree;
&gt; +        let topFunctionsBottomUpCallingContextTree = this._topFunctionsBottomUpCallingContextTree;

What&apos;s the point of saving these to local variables?

&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:452
&gt; +        if (this._capturing)
&gt; +            return false;
&gt; +
&gt; +        if (isNaN(this._startTime))
&gt; +            return false;
&gt; +
&gt; +        return true;

Should we inline all of this?

```
    return !this._capturing &amp;&amp; !isNaN(this._startTime);
```

I find that that is much easier to wrap my head around at a glance.

&gt; Source/WebInspectorUI/UserInterface/Views/MediaTimelineView.js:200
&gt; +        this._processRecord(mediaTimelineRecord);

This should be `record`, not `mediaTimelineRecord` (unless you also meant to change `let mediaTimelineRecord = event.data.record`).

&gt; Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js:56
&gt; +        if (this._memoryTimeline.records.length) {

Why is this check necessary?

&gt; Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js:252
&gt;  

For the sake of uniformity, should we add a `console.assert(memoryTimelineRecord instanceof WI.MemoryTimelineRecord);`?

&gt; Source/WebInspectorUI/UserInterface/Views/NetworkTimelineOverviewGraph.js:122
&gt; +        let compareByStartTime = (a, b) =&gt; a.startTime - b.startTime;

Why was this changed into an arrow function?  Keeping it as a non-arrow function should be less work as it doesn&apos;t have to capture `this`.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js:1046
&gt; +            if (overviewData.selectionDuration === Number.MAX_VALUE)

How well does this translate to JSON?  How about instead of trying to convey a concept of &quot;everything&quot;, we only select everything if it&apos;s `-1`?  That way, we have a concrete &quot;identifier&quot; as to that particular state.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:70
&gt; +        this._exportButtonNavigationItem.visibilityPriority = WI.NavigationItem.VisibilityPriority.High;

I&apos;d argue that this isn&apos;t that important, as it&apos;s not &quot;important&quot; to being able to use the Timelines tab.  It&apos;s more of a &quot;portability&quot; feature, less so a functionality one.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:71
&gt; +        this._exportButtonNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, () =&gt; { this._exportTimelineRecording(); });

I prefer putting this on a new line, so it isn&apos;t confused with an implicit return arrow function.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:187
&gt; +        navigationItems.push(this._exportButtonNavigationItem);
&gt;          navigationItems.push(this._clearTimelineNavigationItem);

We should have a divider between the import/export and clear.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:209
&gt; +        if (this._recording.canExport())
&gt; +            return {customSaveHandler: () =&gt; { this._exportTimelineRecording(); }};

We should do this if `currentContentView.saveData` is `null` below.  If what we&apos;re currently looking at is able to save something, that should take precedence over the entire timeline .

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:554
&gt; +        let {startTime, endTime} = this._recording;
&gt; +        this._updateTimes(startTime, endTime, endTime);

I&apos;d inline this in the constructor, unless it&apos;s likely to be called more in the future.  Nothing about the logic is particularly &quot;unique&quot; to an imported recording, other than the circumstances in which it&apos;s called.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:602
&gt; +        let recordingData = this._recording.exportData();
&gt; +        let overviewData = this._timelineOverview.exportData();

You could avoid these locals by using `json` from the getgo.

```
    let json = {
        recording: this._recording.exportData(),
        overview: this._timelineOverview.exportData(),
    };
    if (!json.recording || !json.overview) {
        InspectorFrontendHost.beep();
        return;
    }
```

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:618
&gt; +        let filename = frameName ? `${frameName}-recording` : WI.UIString(&quot;Timeline Recording&quot;);

We should use `this._recording.displayName` instead of `WI.UIString(&quot;Timeline Recording&quot;)`, as we may be exporting the 2nd or 3rd (or nth) recording, not always the 1st or &quot;only&quot; one.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:619
&gt; +        let url = &quot;web-inspector:///&quot; + encodeURI(filename) + &quot;.json&quot;;

I&apos;d inline this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516448</commentid>
    <comment_count>3</comment_count>
      <attachid>364587</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-14 01:27:33 -0700</bug_when>
    <thetext>Comment on attachment 364587
[PATCH] Proposed Fix

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

&gt;&gt; LayoutTests/inspector/timeline/timeline-recording.html:79
&gt;&gt; +            // NOTE: This runs the toJSON handlers on the timeline records and more, which is important
&gt; 
&gt; What do you mean by &quot;and more&quot;?

Anything in the `exportData` object with custom toJSON (records, markers, and other model objects).

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:301
&gt;&gt; +            oldRecording.unloaded(importing);
&gt; 
&gt; I&apos;m not sure this is the right move.  I don&apos;t think we should unload the existing recording, as an imported recording shouldn&apos;t change the ability for an existing recording to be able to start/stop additional recording (not to mention this may assert if the `oldRecording` was empty).  I&apos;d expect that importing a recording would just &quot;hide&quot; any existing recording by selecting the newly imported one so that the previously visible one is no longer visible.  Additionally, the start/stop/clear buttons should be disabled, as those operations don&apos;t make sense on something effectively constant.

We currently don&apos;t have the ability to start an older recording. That seems rather low priority.

Would you expect to be able to:

    1. Start and stop a recording.
    2. Start and stop a new recording.
    3. Go back to and start Recording from (1)?

We currently don&apos;t allow that, but it is not really any different from this case.

• The `importing` parameter here avoids the assertion if oldRecording was empty.
• I think this patch does disable the clear / export buttons appropriately. It does not disable the start button, since clicking that will start a new recording and that is the behavior I would expect. I don&apos;t think developers will easily pick up on the fact that they can toggle between recordings and would rather click the start button to start a new recording. All of these features were implemented in the related bug for `readonly` recordings. &lt;https://bugs.webkit.org/show_bug.cgi?id=195594&gt;

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/HeapAllocationsTimelineRecord.js:46
&gt;&gt; +        // recording, which on an import should be the newly imported recording.
&gt; 
&gt; Why not just make `fromJSON` async, and have the entire import process become `async`?  The Audit import export uses that method and works great :)

That would be fine, but I still would not want to wait for HeapSnapshot processing before showing all the other data. I did consider an Import splash screen, but so often the data loaded quickly that I was not concerned.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js:-199
&gt;&gt; -    GarbageCollected: &quot;script-timeline-record-garbage-collected&quot;,
&gt; 
&gt; This is used as a CSS class name, so you&apos;ll have to adjust TimelineRecordBar.css for this as well.

Arg this was surely a merge issue as I did that one before. Thanks for catching.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/SourceMapResource.js:77
&gt;&gt; +    requestContentFromBackend()
&gt; 
&gt; While I&apos;m not against this change, is there a reason for it being in this patch?  Just a drive-by, or something more?

Drive-by. I provided a new implementation of a `requestContentFromBackend()` subclass and this one signature does not match all the rest.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecord.js:74
&gt;&gt; +        throw WI.NotImplementedError.subclassMustOverride();
&gt; 
&gt; Given that every subclass exports `this.type`, perhaps we can do a multilevel approach to this, where the subclasses call `super.toJSON()` and then add their own keys/values to the returned object.
&gt; 
&gt; ```
&gt;     toJSON()
&gt;     {
&gt;         console.assert(this.constructor !== WI.TimelineRecord &amp;&amp; this instanceof WI.TimelineRecord);
&gt; 
&gt;         return {
&gt;             type: this.type,
&gt;         };
&gt;     }
&gt; ```
&gt; 
&gt; And then a subclass could call it.
&gt; 
&gt; ```
&gt;     toJSON()
&gt;     {
&gt;         let json = super.toJSON();
&gt;         json.x = 1;
&gt;         json.y = 2;
&gt;         return json;
&gt;     }
&gt; ```

I didn&apos;t like this for a few reasons.

1. The syntax of the subclasses is not ugly.
2. I want the timeline export to fail immediately when we are have not implemented something that should be required for import/export. Putting a base implementation that doesn&apos;t know what to do will defer the issue until import time.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:90
&gt;&gt; +        recording.initializeCallingContextTrees(sampleStackTraces, sampleDurations);
&gt; 
&gt; Should this happen after we add all of the records, seeing as the ScriptProfiler sends this data after the recording has stopped (e.g. &quot;mimic&quot; behavior)?

I want this to happen before we process records to that we can use the _topDownCallingContextTree to create `record.profilePayload` below (line 98).

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:108
&gt;&gt; +        // Add markers once we&apos;ve transitioned the active recording.
&gt; 
&gt; Is there an event we can add a `singleFireEventListener` to instead, like `WI.TimelineManager.Event.RecordingImported`?

That might be a good idea. The ModelObject shouldn&apos;t need to know about most Controller / View state, but maybe we can act on something.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:429
&gt;&gt; +        this._exportDataSampleDurations = sampleDurations;
&gt; 
&gt; Shouldn&apos;t this be an additive process (e.g. `Array.prototype.concat`)?  If we start/stop a single recording multiple times, we&apos;ll end up calling this each time, which will override it each time.

Good catch! This does not handle starting and stopping multiple times. I&apos;ll fix.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:434
&gt;&gt; +        let topFunctionsBottomUpCallingContextTree = this._topFunctionsBottomUpCallingContextTree;
&gt; 
&gt; What&apos;s the point of saving these to local variables?

Older code this moved from had it, I&apos;ll inline.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:452
&gt;&gt; +        return true;
&gt; 
&gt; Should we inline all of this?
&gt; 
&gt; ```
&gt;     return !this._capturing &amp;&amp; !isNaN(this._startTime);
&gt; ```
&gt; 
&gt; I find that that is much easier to wrap my head around at a glance.

I find the returns much easier, because each return states a reason why we cannot export.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/MediaTimelineView.js:200
&gt;&gt; +        this._processRecord(mediaTimelineRecord);
&gt; 
&gt; This should be `record`, not `mediaTimelineRecord` (unless you also meant to change `let mediaTimelineRecord = event.data.record`).

Oops, yes. Thanks.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js:56
&gt;&gt; +        if (this._memoryTimeline.records.length) {
&gt; 
&gt; Why is this check necessary?

This isn&apos;t and after removing it 3 times on my laptop I never ended up removing it on my iMac... thanks.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js:252
&gt;&gt;  
&gt; 
&gt; For the sake of uniformity, should we add a `console.assert(memoryTimelineRecord instanceof WI.MemoryTimelineRecord);`?

Heh yeah I was going to add these in as well.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/NetworkTimelineOverviewGraph.js:122
&gt;&gt; +        let compareByStartTime = (a, b) =&gt; a.startTime - b.startTime;
&gt; 
&gt; Why was this changed into an arrow function?  Keeping it as a non-arrow function should be less work as it doesn&apos;t have to capture `this`.

An arrow function that does not use the `this` keyword does not capture this in JavaScriptCore. It should not be less work to use an arrow function that is equivalent to a classic function.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js:1046
&gt;&gt; +            if (overviewData.selectionDuration === Number.MAX_VALUE)
&gt; 
&gt; How well does this translate to JSON?  How about instead of trying to convey a concept of &quot;everything&quot;, we only select everything if it&apos;s `-1`?  That way, we have a concrete &quot;identifier&quot; as to that particular state.

Number.MAX_VALUE is the value that TimelineRuler uses when it is selecting everything. It is the concrete identify that TimelineRuler uses.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:209
&gt;&gt; +            return {customSaveHandler: () =&gt; { this._exportTimelineRecording(); }};
&gt; 
&gt; We should do this if `currentContentView.saveData` is `null` below.  If what we&apos;re currently looking at is able to save something, that should take precedence over the entire timeline .

Hmm, that makes sense, but think I would rather ⌘S in the Timelines Tab always global import/export. We can eliminate the sub-view path and instead allow Heap Snapshot import/export only by the button.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:554
&gt;&gt; +        this._updateTimes(startTime, endTime, endTime);
&gt; 
&gt; I&apos;d inline this in the constructor, unless it&apos;s likely to be called more in the future.  Nothing about the logic is particularly &quot;unique&quot; to an imported recording, other than the circumstances in which it&apos;s called.

I expected to do more here, but since it ended up just being this I&apos;ll inline.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:602
&gt;&gt; +        let overviewData = this._timelineOverview.exportData();
&gt; 
&gt; You could avoid these locals by using `json` from the getgo.
&gt; 
&gt; ```
&gt;     let json = {
&gt;         recording: this._recording.exportData(),
&gt;         overview: this._timelineOverview.exportData(),
&gt;     };
&gt;     if (!json.recording || !json.overview) {
&gt;         InspectorFrontendHost.beep();
&gt;         return;
&gt;     }
&gt; ```

I like that!

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:618
&gt;&gt; +        let filename = frameName ? `${frameName}-recording` : WI.UIString(&quot;Timeline Recording&quot;);
&gt; 
&gt; We should use `this._recording.displayName` instead of `WI.UIString(&quot;Timeline Recording&quot;)`, as we may be exporting the 2nd or 3rd (or nth) recording, not always the 1st or &quot;only&quot; one.

I waffled on this.

• The name &quot;Timeline Recording 1&quot; will end up being so common that it will be annoying.
• A timestamp based filename (like images) ends up being super long and ugly on re-import.

I still prefer the domain name title, even if that collides the user can name them and get a better idea what it was about &quot;webkit.org-scrolling.json&quot; and &quot;webkit.org-loading.json&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516451</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-14 01:29:12 -0700</bug_when>
    <thetext>&gt; 1. The syntax of the subclasses is not ugly.

Correction: *now* ugly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516549</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-14 11:28:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/23188921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516682</commentid>
    <comment_count>6</comment_count>
      <attachid>364697</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-14 15:11:06 -0700</bug_when>
    <thetext>Created attachment 364697
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516688</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-03-14 15:15:01 -0700</bug_when>
    <thetext>Attachment 364697 did not pass style-queue:


ERROR: Source/WebInspectorUI/UserInterface/Views/TimelineRecordingImportedView.css:27:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebInspectorUI/UserInterface/Views/TimelineRecordingImportedView.css:28:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebInspectorUI/UserInterface/Views/TimelineRecordingImportedView.css:29:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 3 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516788</commentid>
    <comment_count>8</comment_count>
      <attachid>364735</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-14 17:43:41 -0700</bug_when>
    <thetext>Created attachment 364735
[PATCH] Proposed Fix

Previous patch forgot the updated test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517259</commentid>
    <comment_count>9</comment_count>
      <attachid>364735</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-15 16:23:53 -0700</bug_when>
    <thetext>Comment on attachment 364735
[PATCH] Proposed Fix

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordingImportedView.js:38
&gt; +    get visible() { return this._visible; }

Style: this should be on separate lines, since the setter is &quot;complex&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517273</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-15 16:46:51 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/243024/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517735</commentid>
    <comment_count>11</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-18 09:57:47 -0700</bug_when>
    <thetext>It looks like the new test inspector/timeline/timeline-recording.html

added in https://trac.webkit.org/changeset/243024/webkit

is a flakey failure.

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Ftimeline%2Ftimeline-recording.html

Diff:
--- /Volumes/Data/slave/mojave-leaks/build/layout-test-results/inspector/timeline/timeline-recording-expected.txt
+++ /Volumes/Data/slave/mojave-leaks/build/layout-test-results/inspector/timeline/timeline-recording-actual.txt
@@ -46,10 +46,6 @@
     {
       &quot;time&quot;: &quot;&lt;filtered&gt;&quot;,
       &quot;type&quot;: &quot;dom-content-event&quot;
-    },
-    {
-      &quot;time&quot;: &quot;&lt;filtered&gt;&quot;,
-      &quot;type&quot;: &quot;load-event&quot;
     }
   ],
   &quot;memoryPressureEvents&quot;: [],</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517801</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-18 11:18:23 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #11)
&gt; It looks like the new test inspector/timeline/timeline-recording.html
&gt; 
&gt; added in https://trac.webkit.org/changeset/243024/webkit
&gt; 
&gt; is a flakey failure.

I relaxed the test in:
https://trac.webkit.org/r243084</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364587</attachid>
            <date>2019-03-13 16:01:09 -0700</date>
            <delta_ts>2019-03-14 15:11:11 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>import-1.patch</filename>
            <type>text/plain</type>
            <size>82494</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhODIxNjY1MTA4YS4uODYxMWU2ZTNiMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0wMy0xMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lcyAtIEltcG9ydCAvIEV4cG9ydCBUaW1lbGluZSBS
ZWNvcmRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU3MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNvcmRpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLmh0
bWw6IEFkZGVkLgorCiAyMDE5LTAzLTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29yayAtIEhBUiBJbXBvcnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNvcmRp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXJlY29yZGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjNlMmEwNjQ3YjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY29yZGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
MCBAQAorVGVzdHMgZm9yIHRpbWVsaW5lIHJlY29yZGluZy4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IFRpbWVsaW5lUmVjb3JkaW5nCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVGltZWxpbmVS
ZWNvcmRpbmcuQmFzaWMKKy0tIExvYWRlZAorUEFTUzogVGltZWxpbmVNYW5hZ2VyIHNob3VsZCBu
b3QgYmUgY2FwdHVyaW5nLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSBj
YXB0dXJpbmcuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIHJlYWRvbmx5
LgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSBpbXBvcnRlZC4KK1BBU1M6
IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgaGF2ZSBhIHN0YXJ0VGltZS4KK1BBU1M6IFRp
bWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgaGF2ZSBhIGVuZFRpbWUuCistLSBTdGFydAorUEFT
UzogVGltZWxpbmVNYW5hZ2VyIHNob3VsZCBiZSBjYXB0dXJpbmcuCitQQVNTOiBUaW1lbGluZU1h
bmFnZXIgYWN0aXZlIHJlY29yZGluZyBzaG91bGQgbm90IGhhdmUgY2hhbmdlZC4KK1BBU1M6IFRp
bWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSBjYXB0dXJpbmcuCitQQVNTOiBUaW1lbGluZVJlY29y
ZGluZyBzaG91bGQgbm90IGJlIHJlYWRvbmx5LgorLS0gUmVsb2FkCistLSBTdG9wCitQQVNTOiBU
aW1lbGluZU1hbmFnZXIgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuCitQQVNTOiBUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgbm90IGJlIGNhcHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5n
IHNob3VsZCBub3QgYmUgcmVhZG9ubHkuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQg
bm90IGJlIGltcG9ydGVkLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGhhdmUgYSBz
dGFydFRpbWUuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgaGF2ZSBhIGVuZFRpbWUu
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBUaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuZXhw
b3J0RGF0YQorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGJlIGFibGUgdG8gZXhwb3J0
LgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGJlIGFibGUgdG8gcHJvZHVjZSBleHBv
cnQgZGF0YS4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBoYXZlIGF0IGxlYXN0IDEw
IFRpbWVsaW5lIFJlY29yZHMuCistLSBFeHBvcnQgRGF0YQoreworICAiZGlzcGxheU5hbWUiOiAi
PGZpbHRlcmVkPiIsCisgICJzdGFydFRpbWUiOiAiPGZpbHRlcmVkPiIsCisgICJlbmRUaW1lIjog
IjxmaWx0ZXJlZD4iLAorICAiZGlzY29udGludWl0aWVzIjogW10sCisgICJpbnN0cnVtZW50VHlw
ZXMiOiBbCisgICAgInRpbWVsaW5lLXJlY29yZC10eXBlLW5ldHdvcmsiLAorICAgICJ0aW1lbGlu
ZS1yZWNvcmQtdHlwZS1sYXlvdXQiLAorICAgICJ0aW1lbGluZS1yZWNvcmQtdHlwZS1zY3JpcHQi
LAorICAgICJ0aW1lbGluZS1yZWNvcmQtdHlwZS1jcHUiLAorICAgICJ0aW1lbGluZS1yZWNvcmQt
dHlwZS1yZW5kZXJpbmctZnJhbWUiCisgIF0sCisgICJyZWNvcmRzIjogIjxmaWx0ZXJlZD4iLAor
ICAibWFya2VycyI6IFsKKyAgICB7CisgICAgICAidGltZSI6ICI8ZmlsdGVyZWQ+IiwKKyAgICAg
ICJ0eXBlIjogImRvbS1jb250ZW50LWV2ZW50IgorICAgIH0sCisgICAgeworICAgICAgInRpbWUi
OiAiPGZpbHRlcmVkPiIsCisgICAgICAidHlwZSI6ICJsb2FkLWV2ZW50IgorICAgIH0KKyAgXSwK
KyAgIm1lbW9yeVByZXNzdXJlRXZlbnRzIjogW10sCisgICJzYW1wbGVTdGFja1RyYWNlcyI6IFtd
LAorICAic2FtcGxlRHVyYXRpb25zIjogW10KK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFRp
bWVsaW5lUmVjb3JkaW5nLmltcG9ydAorUEFTUzogVGltZWxpbmVNYW5hZ2VyIGFjdGl2ZSByZWNv
cmRpbmcgaXMgbm90IHRoaXMgaW1wb3J0ZWQgcmVjb3JkaW5nLgorUEFTUzogVGltZWxpbmVSZWNv
cmRpbmcgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBz
aG91bGQgYmUgcmVhZG9ubHkuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgYmUgaW1w
b3J0ZWQuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgaGF2ZSBhIHN0YXJ0VGltZS4K
K1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBoYXZlIGEgZW5kVGltZS4KK1BBU1M6IFRp
bWVsaW5lUmVjb3JkaW5nIGlkZW50aWZpZXIgc2hvdWxkIGJlIDk5OS4KKy0tIERpc3BsYXkgTmFt
ZToKK0ltcG9ydGVkIC0gbmFtZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmJkZTI1OGYxMGM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY29yZGluZy5odG1sCkBAIC0wLDAgKzEs
MTA1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlRpbWVsaW5lUmVjb3JkaW5nIik7CisKKyAgICBs
ZXQgZXhwb3J0RGF0YSA9IG51bGw7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJUaW1lbGluZVJlY29yZGluZy5CYXNpYyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
TWFrZSBhIGJhc2ljIFRpbWVsaW5lIHJlY29yZGluZy4iLAorICAgICAgICBhc3luYyB0ZXN0KCkg
eworICAgICAgICAgICAgbGV0IHJlY29yZGluZyA9IFdJLnRpbWVsaW5lTWFuYWdlci5hY3RpdmVS
ZWNvcmRpbmc7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLSBMb2FkZWQiKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoV0kudGltZWxpbmVNYW5hZ2Vy
LmlzQ2FwdHVyaW5nKCksICJUaW1lbGluZU1hbmFnZXIgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcu
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHJlY29yZGluZy5jYXB0
dXJpbmcsICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGNhcHR1cmluZy4iKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLnJlYWRvbmx5LCAi
VGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSByZWFkb25seS4iKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLmltcG9ydGVkLCAiVGltZWxpbmVS
ZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSBpbXBvcnRlZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChpc05hTihyZWNvcmRpbmcuc3RhcnRUaW1lKSwgIlRpbWVsaW5lUmVj
b3JkaW5nIHNob3VsZCBub3QgaGF2ZSBhIHN0YXJ0VGltZS4iKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChpc05hTihyZWNvcmRpbmcuZW5kVGltZSksICJUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgbm90IGhhdmUgYSBlbmRUaW1lLiIpOworCisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiLS0gU3RhcnQiKTsKKyAgICAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdl
ci5zdGFydENhcHR1cmluZygpOworICAgICAgICAgICAgYXdhaXQgV0kudGltZWxpbmVNYW5hZ2Vy
LmF3YWl0RXZlbnQoV0kuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LkNhcHR1cmluZ1N0YXJ0ZWQpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUcnVlKFdJLnRpbWVsaW5lTWFuYWdlci5p
c0NhcHR1cmluZygpLCAiVGltZWxpbmVNYW5hZ2VyIHNob3VsZCBiZSBjYXB0dXJpbmcuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLnRpbWVsaW5lTWFuYWdlci5h
Y3RpdmVSZWNvcmRpbmcsIHJlY29yZGluZywgIlRpbWVsaW5lTWFuYWdlciBhY3RpdmUgcmVjb3Jk
aW5nIHNob3VsZCBub3QgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUcnVlKHJlY29yZGluZy5jYXB0dXJpbmcsICJUaW1lbGluZVJlY29yZGluZyBzaG91
bGQgYmUgY2FwdHVyaW5nLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxz
ZShyZWNvcmRpbmcucmVhZG9ubHksICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIHJl
YWRvbmx5LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0gUmVsb2FkIik7
CisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKKyAgICAgICAg
ICAgIGF3YWl0IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudChGcm9udGVuZFRlc3RIYXJuZXNzLkV2
ZW50LlRlc3RQYWdlRGlkTG9hZCk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIt
LSBTdG9wIik7CisgICAgICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuc3RvcENhcHR1cmluZygp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShXSS50aW1lbGluZU1hbmFn
ZXIuaXNDYXB0dXJpbmcoKSwgIlRpbWVsaW5lTWFuYWdlciBzaG91bGQgbm90IGJlIGNhcHR1cmlu
Zy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLmNh
cHR1cmluZywgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgY2FwdHVyaW5nLiIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShyZWNvcmRpbmcucmVhZG9ubHks
ICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIHJlYWRvbmx5LiIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShyZWNvcmRpbmcuaW1wb3J0ZWQsICJUaW1lbGlu
ZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGltcG9ydGVkLiIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KCFpc05hTihyZWNvcmRpbmcuc3RhcnRUaW1lKSwgIlRpbWVsaW5l
UmVjb3JkaW5nIHNob3VsZCBoYXZlIGEgc3RhcnRUaW1lLiIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KCFpc05hTihyZWNvcmRpbmcuZW5kVGltZSksICJUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgaGF2ZSBhIGVuZFRpbWUuIik7CisgICAgICAgIH0KKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRpbWVsaW5lUmVjb3JkaW5n
LnByb3RvdHlwZS5leHBvcnREYXRhIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGZvciBh
IHJlY29yZGluZyBleHBvcnQuIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IGxldCByZWNvcmRpbmcgPSBXSS50aW1lbGluZU1hbmFnZXIuYWN0aXZlUmVjb3JkaW5nOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWlzTmFOKHJlY29yZGluZy5zdGFydFRpbWUp
LCAiRkFJTDogUHJldmlvdXMgdGVzdCBsb2FkaW5nIGEgcmVjb3JkaW5nIGZhaWxlZC4iKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFpc05hTihyZWNvcmRpbmcuZW5kVGltZSks
ICJGQUlMOiBQcmV2aW91cyB0ZXN0IGxvYWRpbmcgYSByZWNvcmRpbmcgZmFpbGVkLiIpOworCisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRydWUocmVjb3JkaW5nLmNhbkV4cG9ydCgp
LCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGJlIGFibGUgdG8gZXhwb3J0LiIpOworCisgICAg
ICAgICAgICBleHBvcnREYXRhID0gcmVjb3JkaW5nLmV4cG9ydERhdGEoKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChleHBvcnREYXRhLCAiVGltZWxpbmVSZWNvcmRpbmcg
c2hvdWxkIGJlIGFibGUgdG8gcHJvZHVjZSBleHBvcnQgZGF0YS4iKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChleHBvcnREYXRhLnJlY29yZHMubGVuZ3RoID4gMTAsICJU
aW1lbGluZVJlY29yZGluZyBzaG91bGQgaGF2ZSBhdCBsZWFzdCAxMCBUaW1lbGluZSBSZWNvcmRz
LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0gRXhwb3J0IERhdGEiKTsK
KyAgICAgICAgICAgIGxldCBmaWx0ZXJLZXlzID0gbmV3IFNldChbInN0YXJ0VGltZSIsICJlbmRU
aW1lIiwgInRpbWUiLCAicmVjb3JkcyIsICJkaXNwbGF5TmFtZSJdKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuanNvbihleHBvcnREYXRhLCAoa2V5LCB2YWx1ZSkgPT4geworICAgICAgICAg
ICAgICAgIGlmIChmaWx0ZXJLZXlzLmhhcyhrZXkpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gIjxmaWx0ZXJlZD4iOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJUaW1lbGluZVJlY29yZGluZy5pbXBvcnQiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIlRlc3QgZm9yIGEgcmVjb3JkaW5nIGltcG9ydC4iLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXhwb3J0RGF0YSwgIkZBSUw6
IFByZXZpb3VzIHRlc3QgZXhwb3J0aW5nIGEgcmVjb3JkaW5nIGZhaWxlZC4iKTsKKworICAgICAg
ICAgICAgLy8gTk9URTogVGhpcyBydW5zIHRoZSB0b0pTT04gaGFuZGxlcnMgb24gdGhlIHRpbWVs
aW5lIHJlY29yZHMgYW5kIG1vcmUsIHdoaWNoIGlzIGltcG9ydGFudAorICAgICAgICAgICAgLy8g
YmVjYXVzZSBpbXBvcnRpbmcgZXhwZWN0cyB0aGUgc2VyaWFsaXplZCBmb3JtIG9mIHRoZSBvYmpl
Y3RzLCBub3QgcmF3IG9iamVjdHMuCisgICAgICAgICAgICBsZXQganNvbkRhdGEgPSBKU09OLnBh
cnNlKEpTT04uc3RyaW5naWZ5KGV4cG9ydERhdGEpKTsKKworICAgICAgICAgICAgY29uc3QgaWRl
bnRpZmllciA9IDk5OTsKKyAgICAgICAgICAgIGxldCByZWNvcmRpbmcgPSBXSS5UaW1lbGluZVJl
Y29yZGluZy5pbXBvcnQoaWRlbnRpZmllciwganNvbkRhdGEsICJuYW1lIik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFsKFdJLnRpbWVsaW5lTWFuYWdlci5hY3RpdmVS
ZWNvcmRpbmcsIHJlY29yZGluZywgIlRpbWVsaW5lTWFuYWdlciBhY3RpdmUgcmVjb3JkaW5nIGlz
IG5vdCB0aGlzIGltcG9ydGVkIHJlY29yZGluZy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLmNhcHR1cmluZywgIlRpbWVsaW5lUmVjb3JkaW5nIHNo
b3VsZCBub3QgYmUgY2FwdHVyaW5nLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUcnVlKHJlY29yZGluZy5yZWFkb25seSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSBy
ZWFkb25seS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VHJ1ZShyZWNvcmRp
bmcuaW1wb3J0ZWQsICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgYmUgaW1wb3J0ZWQuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWlzTmFOKHJlY29yZGluZy5zdGFy
dFRpbWUpLCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGhhdmUgYSBzdGFydFRpbWUuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWlzTmFOKHJlY29yZGluZy5lbmRU
aW1lKSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBoYXZlIGEgZW5kVGltZS4iKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVjb3JkaW5nLmlkZW50aWZpZXIsIGlk
ZW50aWZpZXIsIGBUaW1lbGluZVJlY29yZGluZyBpZGVudGlmaWVyIHNob3VsZCBiZSAke2lkZW50
aWZpZXJ9LmApOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiLS0gRGlzcGxheSBO
YW1lOiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocmVjb3JkaW5nLmRpc3BsYXlO
YW1lKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmlu
aXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxwPlRlc3RzIGZvciB0aW1lbGluZSByZWNvcmRpbmcuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggYjFmZWY4M2U4YmEuLmIxMDYzOGE4YTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxODAgQEAKKzIwMTktMDMtMTMgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBUaW1lbGluZXMgLSBJbXBvcnQgLyBFeHBvcnQgVGltZWxpbmUgUmVjb3JkaW5ncworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NzA5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGltZWxpbmUgZXhwb3J0
IHNhdmVzIFRpbWVsaW5lUmVjb3JkaW5nIGFuZCBUaW1lbGluZU92ZXJ2aWV3IHN0YXRlLgorICAg
ICAgICBUaGUgVGltZWxpbmVSZWNvcmRpbmcgaW5jbHVkZXMgYWxsIGtpbmRzIG9mIG1vZGVsIG9i
amVjdHMgc3VjaCBhcworICAgICAgICByZWNvcmRzLCBtYXJrZXJzLCBtZW1vcnkgcHJlc3N1cmUg
ZXZlbnRzLiBJdCBhbHNvIGluY2x1ZGVzIHJhdworICAgICAgICBwcm90b2NvbCBkYXRhIHN1Y2gg
YXMgc2NyaXB0IHByb2ZpbGVyIHNhbXBsZXMuIFRpbWVsaW5lT3ZlcnZpZXcKKyAgICAgICAgaW5j
bHVkZXMgc29tZSBvZiB0aGUgdmlldyBzdGF0ZSB0byByZXN0b3JlIHN1Y2ggYXMgdGhlIHNlbGVj
dGVkCisgICAgICAgIHRpbWUgcmFuZ2UsIHpvb20gbGV2ZWwsIGFuZCBzZWxlY3RlZCB0aW1lbGlu
ZS4KKworICAgICAgICBUaW1lbGluZSBpbXBvcnQgY29uc3RydWN0cyBhIG5ldyBUaW1lbGluZVJl
Y29yZGluZyBieSByZXBsYXlpbmcKKyAgICAgICAgdGhlIHJlY29yZHMsIG1hcmtlcnMsIHZhcmlv
dXMgZXZlbnRzLCBhbmQgcmUtaW5pdGlhbGl6aW5nIG1vcmUgc3RhdGUuCisgICAgICAgIFRvIGZp
bmFsbHkgZGlzcGxheSB0aGUgaW1wb3J0ZWQgcmVjb3JkaW5nIHRoZSBjb250ZW50IHZpZXcgd2ls
bAorICAgICAgICBpbW1lZGlhdGVseSBpbml0aWFsaXplIHN0YXJ0L2N1cnJlbnQvZW5kIHRpbWVz
IGFuZCB0aGUgb3ZlcnZpZXcKKyAgICAgICAgd2lsbCByZXN0b3JlIHRoZSB2aWV3IHN0YXRlLgor
CisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgor
ICAgICAgICBOZXcgc3RyaW5ncy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvVGltZWxpbmVNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuVGltZWxpbmVNYW5hZ2VyLnN5bnRo
ZXNpemVJbXBvcnRFcnJvcik6CisgICAgICAgIChXSS5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBl
LmltcG9ydFJlY29yZGluZyk6CisgICAgICAgIEltcG9ydCBBUEkuCisKKyAgICAgICAgKFdJLlRp
bWVsaW5lTWFuYWdlci5wcm90b3R5cGUuc2NyaXB0UHJvZmlsZXJUcmFja2luZ0NvbXBsZXRlZCk6
CisgICAgICAgIEluaXRpYWxpemUgdGhlIHNhbXBsZXMgb24gdGhlIHJlY29yZGluZyB2aWEgYSBk
aWZmZXJlbnQgcGF0aAorICAgICAgICBzbyB0aGF0IHRoZSBkYXRhIGNhbiBiZSBzYXZlZCBmb3Ig
ZXhwb3J0aW5nLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNv
cmRpbmcuanM6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZyk6CisgICAgICAgIChXSS5U
aW1lbGluZVJlY29yZGluZy5pbXBvcnQpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcu
cHJvdG90eXBlLmV4cG9ydERhdGEpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcucHJv
dG90eXBlLmdldCBjYXB0dXJpbmcpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcucHJv
dG90eXBlLmdldCBpbXBvcnRlZCk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90
b3R5cGUudW5sb2FkZWQpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBl
LnJlc2V0KToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5hZGRFdmVu
dE1hcmtlcik6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuYWRkUmVj
b3JkKToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5hZGRNZW1vcnlQ
cmVzc3VyZUV2ZW50KToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5p
bml0aWFsaXplQ2FsbGluZ0NvbnRleHRUcmVlcyk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29y
ZGluZy5wcm90b3R5cGUuY2FuRXhwb3J0KToKKyAgICAgICAgU2F2ZSBkYXRhIGF0IHRoZSBUaW1l
bGluZVJlY29yZGluZyBsZXZlbCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZXhwb3J0LgorICAgICAg
ICBXZSBvbmx5IGFsbG93IGV4cG9ydGluZyBhIFRpbWVsaW5lUmVjb3JkaW5nIHRoYXQgaGFzIHN0
YXJ0ZWQvc3RvcHBlZAorICAgICAgICBhdCBsZWFzdCBvbmNlIGFuZCBpcyBub3QgY3VycmVudGx5
IGNhcHR1cmluZy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNv
cmRpbmdDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVu
dFZpZXcpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5
cGUuZ2V0IG5hdmlnYXRpb25JdGVtcyk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5nZXQgc3VwcG9ydHNTYXZlKToKKyAgICAgICAgKFdJLlRpbWVs
aW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBzYXZlRGF0YSk6CisgICAgICAg
IChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAg
ICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fY2FwdHVyaW5n
U3RhcnRlZCk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fY2FwdHVyaW5nU3RvcHBlZCk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5faW5pdGlhbGl6ZUltcG9ydGVkUmVjb3JkaW5nKToKKyAgICAg
ICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLl9leHBvcnRUaW1l
bGluZVJlY29yZGluZyk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3
LnByb3RvdHlwZS5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKToKKyAgICAgICAg
KFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLl9yZWNvcmRpbmdSZXNl
dCk6CisgICAgICAgIEFkZCBJbXBvcnQgYW5kIEV4cG9ydCBidXR0b25zIGluIHRoZSBUaW1lbGlu
ZSBuYXZpZ2F0aW9uIGJhci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxp
bmVPdmVydmlldy5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lT3ZlcnZpZXcpOgorICAgICAgICAo
V0kuVGltZWxpbmVPdmVydmlldy5wcm90b3R5cGUuZXhwb3J0RGF0YSk6CisgICAgICAgIChXSS5U
aW1lbGluZU92ZXJ2aWV3LnByb3RvdHlwZS5faW5zdHJ1bWVudEFkZGVkKToKKyAgICAgICAgKFdJ
LlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90eXBlLl9yZWNvcmRpbmdJbXBvcnRlZCk6CisgICAgICAg
IFdoZW4gaW1wb3J0aW5nIGEgcmVjb3JkaW5nIHVwZGF0ZSB0aGUgVGltZWxpbmVPdmVydmlldyBz
dGF0ZQorICAgICAgICBzb29uIGFmdGVyd2FyZHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01vZGVscy9DUFVUaW1lbGluZVJlY29yZC5qczoKKyAgICAgICAgKFdJLkNQVVRpbWVsaW5lUmVj
b3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLkNQVVRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS50
b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0dhcmJhZ2VDb2xsZWN0aW9u
LmpzOgorICAgICAgICAoV0kuR2FyYmFnZUNvbGxlY3Rpb24uZnJvbUpTT04pOgorICAgICAgICAo
V0kuR2FyYmFnZUNvbGxlY3Rpb24ucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnkuanM6CisgICAgICAgIChXSS5RdWFkLmZyb21KU09OKToK
KyAgICAgICAgKFdJLlF1YWQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChX
SS5IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAgIChXSS5I
ZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29yZC5qczoKKyAgICAgICAg
KFdJLkxheW91dFRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLkxheW91dFRp
bWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL01lZGlhVGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5NZWRpYVRpbWVsaW5l
UmVjb3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLk1lZGlhVGltZWxpbmVSZWNvcmQucHJvdG90
eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5UHJlc3N1
cmVFdmVudC5qczoKKyAgICAgICAgKFdJLk1lbW9yeVByZXNzdXJlRXZlbnQuZnJvbUpTT04pOgor
ICAgICAgICAoV0kuTWVtb3J5UHJlc3N1cmVFdmVudC5wcm90b3R5cGUudG9KU09OKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qczoKKyAgICAg
ICAgKFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkKToKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5l
UmVjb3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkLnByb3Rv
dHlwZS50b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0Zy
YW1lVGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5l
UmVjb3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNv
cmQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVz
b3VyY2VUaW1lbGluZVJlY29yZC5qczoKKyAgICAgICAgKFdJLlJlc291cmNlVGltZWxpbmVSZWNv
cmQuZnJvbUpTT04pOgorICAgICAgICAoV0kuUmVzb3VyY2VUaW1lbGluZVJlY29yZC5wcm90b3R5
cGUudG9KU09OKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGlu
ZVJlY29yZC5qczoKKyAgICAgICAgKFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToK
KyAgICAgICAgKFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lTWFya2VyLmpzOgorICAgICAgICAo
V0kuVGltZWxpbmVNYXJrZXIuZnJvbUpTT04pOgorICAgICAgICAoV0kuVGltZWxpbmVNYXJrZXIu
cHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgIChXSS5UaW1lbGluZU1hcmtlci5wcm90b3R5cGUu
Z2V0IHR5cGUpOgorICAgICAgICAoV0kuVGltZWxpbmVNYXJrZXIucHJvdG90eXBlLmdldCBkZXRh
aWxzKToKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFya2VyLnByb3RvdHlwZS5zZXQgdGltZSk6Cisg
ICAgICAgIChXSS5UaW1lbGluZU1hcmtlcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2Rl
bHMvVGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZC5mcm9tSlNP
Tik6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAg
ICAgSW1wb3J0IC8gRXhwb3J0IHRvSlNPTiAvIGZyb21KU09OIGltcGxlbWVudGF0aW9ucy4KKyAg
ICAgICAgCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DUFVUaW1lbGluZU92ZXJ2aWV3
R3JhcGguanM6CisgICAgICAgIChXSS5DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGgpOgorICAgICAg
ICAoV0kuQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlwZS5fY3B1VGltZWxpbmVSZWNv
cmRBZGRlZCk6CisgICAgICAgIChXSS5DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBl
Ll9wcm9jZXNzUmVjb3JkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRp
bWVsaW5lT3ZlcnZpZXdHcmFwaC5qczoKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lT3ZlcnZp
ZXdHcmFwaCk6CisgICAgICAgIChXSS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90
eXBlLl9sYXlvdXRUaW1lbGluZVJlY29yZEFkZGVkKToKKyAgICAgICAgKFdJLkxheW91dFRpbWVs
aW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuTGF5
b3V0VGltZWxpbmVWaWV3KToKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lVmlldy5wcm90b3R5
cGUuX2xheW91dFRpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuTGF5b3V0VGltZWxp
bmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9NZWRpYVRpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLk1lZGlhVGltZWxpbmVW
aWV3KToKKyAgICAgICAgKFdJLk1lZGlhVGltZWxpbmVWaWV3LnByb3RvdHlwZS5faGFuZGxlUmVj
b3JkQWRkZWQpOgorICAgICAgICAoV0kuTWVkaWFUaW1lbGluZVZpZXcucHJvdG90eXBlLl9wcm9j
ZXNzUmVjb3JkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5l
T3ZlcnZpZXdHcmFwaC5qczoKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFw
aCk6CisgICAgICAgIChXSS5NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLl9t
ZW1vcnlUaW1lbGluZVJlY29yZEFkZGVkKToKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lT3Zl
cnZpZXdHcmFwaC5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvTWVtb3J5VGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuTWVtb3J5VGlt
ZWxpbmVWaWV3KToKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX21l
bW9yeVRpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuTWVtb3J5VGltZWxpbmVWaWV3
LnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoLmpzOgorICAgICAgICAoV0kuTmV0d29ya1Rp
bWVsaW5lT3ZlcnZpZXdHcmFwaCk6CisgICAgICAgIChXSS5OZXR3b3JrVGltZWxpbmVPdmVydmll
d0dyYXBoLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXSS5OZXR3b3JrVGltZWxpbmVPdmVy
dmlld0dyYXBoLnByb3RvdHlwZS5fbmV0d29ya1RpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAg
ICAoV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUuX3Byb2Nlc3NSZWNv
cmQpOgorICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUu
X25ldHdvcmtUaW1lbGluZVJlY29yZEFkZGVkLmNvbXBhcmVCeVN0YXJ0VGltZSk6IERlbGV0ZWQu
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzOgor
ICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5lVmlldyk6CisgICAgICAgIChXSS5OZXR3b3JrVGlt
ZWxpbmVWaWV3LnByb3RvdHlwZS5fbmV0d29ya1RpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAg
ICAoV0kuTmV0d29ya1RpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanM6
CisgICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXSS5S
ZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3JlbmRlcmluZ0ZyYW1lVGltZWxp
bmVSZWNvcmRBZGRlZCk6CisgICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5w
cm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
U2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLlNjcmlwdERldGFpbHNU
aW1lbGluZVZpZXcpOgorICAgICAgICAoV0kuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5wcm90
b3R5cGUuX3NjcmlwdFRpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuU2NyaXB0RGV0
YWlsc1RpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICBBZGQg
Y29tbW9uIF9wcm9jZXNzUmVjb3JkIHBhdGggdG8gZWFjaCB0aW1lbGluZSBPdmVydmlld0dyYXBo
IGFuZCBUaW1lbGluZVZpZXcuCisgICAgICAgIEJ5IGNhbGxpbmcgdGhpcyBpbiBjb25zdHJ1Y3Rp
b24gd2UgcG9wdWxhdGUgZ3JhcGhzIHdpdGggVGltZWxpbmVSZWNvcmRzIHRoYXQKKyAgICAgICAg
bWF5IGhhdmUgYWxyZWFkeSBleGlzdGVkLiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgaW1wb3J0cywg
YnV0IHRoaXMgYWxzbyBmaXhlcworICAgICAgICB0aGUgY2FzZSB3aGVyZSB5b3UgZW5hYmxlIGEg
dGltZWxpbmUgdGhhdCBoYWQgZGF0YSBhbmQgaXQgZGlkbid0IHNob3cgZGF0YS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmNzczoK
KyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3Jh
cGgtcm93KToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZp
ZXcgPiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5lLXJlY29yZC1iYXIpOgorICAgICAgICAoLnRpbWVs
aW5lLW92ZXJ2aWV3LWdyYXBoLmxheW91dC1vdmVydmlldyA+IC5ncmFwaC1yb3cgPiAudGltZWxp
bmUtcmVjb3JkLWJhciA+IC5zZWdtZW50KToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy1n
cmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93KTogRGVsZXRlZC4KKyAgICAgICAgKC50aW1lbGluZS1v
dmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5lLXJlY29yZC1iYXIp
OiBEZWxldGVkLgorICAgICAgICAoLnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBoLmxheW91dCA+IC5n
cmFwaC1yb3cgPiAudGltZWxpbmUtcmVjb3JkLWJhciA+IC5zZWdtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkQmFyLmNzczoKKyAgICAg
ICAgKC50aW1lbGluZS1yZWNvcmQtYmFyLnRpbWVsaW5lLXJlY29yZC10eXBlLWxheW91dC5wYWlu
dCA+IC5zZWdtZW50LCk6CisgICAgICAgICgudGltZWxpbmUtcmVjb3JkLWJhci50aW1lbGluZS1y
ZWNvcmQtdHlwZS1sYXlvdXQubGF5b3V0LXRpbWVsaW5lLXJlY29yZC1wYWludCA+IC5zZWdtZW50
LCk6IERlbGV0ZWQuCisgICAgICAgIFdlIHNpbXBsaWZpZWQgc29tZSBvZiB0aGUgc3ViLXJlY29y
ZCB0eXBlIGVudW0gc3RyaW5ncy4gVG8gZG8gdGhpcyB3ZSBuZWVkZWQgdG8gY2hhbmdlCisgICAg
ICAgICJsYXlvdXQiIHRvICJsYXlvdXQtb3ZlcnZpZXciIHRvIGF2b2lkIGEgY29uZmxpY3QuCisK
IDIwMTktMDMtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIC0gSEFSIEltcG9ydApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKaW5kZXggMDQwMGFmMGZlMDMuLjU1NWNmMzgzYTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTU1Miw2ICs1NTIsNyBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJJbWFnZXMiXSA9ICJJbWFnZXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBh
dXNlIFJlcXVlc3RlZCJdID0gIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVk
U3RyaW5nc1siSW1wb3J0Il0gPSAiSW1wb3J0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVk
Il0gPSAiSW1wb3J0ZWQiOworbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgLSAlcyJdID0gIklt
cG9ydGVkIC0gJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgUmVjb3JkaW5ncyJdID0g
IkltcG9ydGVkIFJlY29yZGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgXHUyMDE0
ICVzIl0gPSAiSW1wb3J0ZWQgXHUyMDE0ICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkluY29tcGxl
dGUiXSA9ICJJbmNvbXBsZXRlIjsKQEAgLTEwNTEsNyArMTA1Miw5IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIlRpbWUiXSA9ICJUaW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRpbWUgc3BlbnQgb24gdGhl
IG1haW4gdGhyZWFkIl0gPSAiVGltZSBzcGVudCBvbiB0aGUgbWFpbiB0aHJlYWQiOwogbG9jYWxp
emVkU3RyaW5nc1siVGltZSB0byBGaXJzdCBCeXRlIl0gPSAiVGltZSB0byBGaXJzdCBCeXRlIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlRpbWVsaW5lIl0gPSAiVGltZWxpbmUiOworbG9jYWxpemVkU3Ry
aW5nc1siVGltZWxpbmUgUmVjb3JkaW5nIl0gPSAiVGltZWxpbmUgUmVjb3JkaW5nIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlRpbWVsaW5lIFJlY29yZGluZyAlZCJdID0gIlRpbWVsaW5lIFJlY29yZGlu
ZyAlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaW1lbGluZSBSZWNvcmRpbmcgSW1wb3J0IEVycm9y
OiAlcyJdID0gIlRpbWVsaW5lIFJlY29yZGluZyBJbXBvcnQgRXJyb3I6ICVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlRpbWVsaW5lcyJdID0gIlRpbWVsaW5lcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJU
aW1lciAlZCBGaXJlZCJdID0gIlRpbWVyICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRp
bWVyICVkIEluc3RhbGxlZCJdID0gIlRpbWVyICVkIEluc3RhbGxlZCI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1h
bmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9UaW1lbGluZU1hbmFnZXIuanMKaW5kZXggOWYzZWQxYmVkNjUuLjA2N2ZiMjE5YTNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9U
aW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCkBAIC0xMzYsNiArMTM2LDIxIEBAIFdJ
LlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdJLk9iamVj
dAogICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAgfQogCisgICAgc3RhdGljIHN5bnRoZXNpemVJ
bXBvcnRFcnJvcihtZXNzYWdlKQorICAgIHsKKyAgICAgICAgbWVzc2FnZSA9IFdJLlVJU3RyaW5n
KCJUaW1lbGluZSBSZWNvcmRpbmcgSW1wb3J0IEVycm9yOiAlcyIpLmZvcm1hdChtZXNzYWdlKTsK
KworICAgICAgICBpZiAod2luZG93Lkluc3BlY3RvclRlc3QpIHsKKyAgICAgICAgICAgIGNvbnNv
bGUuZXJyb3IobWVzc2FnZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBsZXQgY29uc29sZU1lc3NhZ2UgPSBuZXcgV0kuQ29uc29sZU1lc3NhZ2UoV0kubWFpblRh
cmdldCwgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlciwgV0kuQ29uc29sZU1l
c3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yLCBtZXNzYWdlKTsKKyAgICAgICAgY29uc29sZU1lc3Nh
Z2Uuc2hvdWxkUmV2ZWFsQ29uc29sZSA9IHRydWU7CisKKyAgICAgICAgV0kuY29uc29sZUxvZ1Zp
ZXdDb250cm9sbGVyLmFwcGVuZENvbnNvbGVNZXNzYWdlKGNvbnNvbGVNZXNzYWdlKTsKKyAgICB9
CisKICAgICAvLyBQdWJsaWMKIAogICAgIHJlc2V0KCkKQEAgLTI1OSw2ICsyNzQsMzkgQEAgV0ku
VGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIHRoaXMuX2FjdGl2ZVJlY29yZGluZyA9IG51bGw7CiAgICAgfQogCisgICAgaW1w
b3J0UmVjb3JkaW5nKGpzb25TdHJpbmcsIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgbGV0IGpz
b247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShqc29uU3Ry
aW5nKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgV0kuVGltZWxpbmVNYW5h
Z2VyLnN5bnRoZXNpemVJbXBvcnRFcnJvcihlKTsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBy
ZWNvcmRpbmdEYXRhID0ganNvbi5yZWNvcmRpbmc7CisgICAgICAgIGxldCBvdmVydmlld0RhdGEg
PSBqc29uLm92ZXJ2aWV3OworCisgICAgICAgIGxldCBpZGVudGlmaWVyID0gdGhpcy5fbmV4dFJl
Y29yZGluZ0lkZW50aWZpZXIrKzsKKyAgICAgICAgbGV0IG5ld1JlY29yZGluZyA9IFdJLlRpbWVs
aW5lUmVjb3JkaW5nLmltcG9ydChpZGVudGlmaWVyLCByZWNvcmRpbmdEYXRhLCBmaWxlbmFtZSk7
CisgICAgICAgIHRoaXMuX3JlY29yZGluZ3MucHVzaChuZXdSZWNvcmRpbmcpOworCisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlRpbWVsaW5lTWFuYWdlci5FdmVudC5S
ZWNvcmRpbmdDcmVhdGVkLCB7cmVjb3JkaW5nOiBuZXdSZWNvcmRpbmd9KTsKKworICAgICAgICBp
ZiAodGhpcy5faXNDYXB0dXJpbmcpCisgICAgICAgICAgICB0aGlzLnN0b3BDYXB0dXJpbmcoKTsK
KworICAgICAgICBsZXQgb2xkUmVjb3JkaW5nID0gdGhpcy5fYWN0aXZlUmVjb3JkaW5nOworICAg
ICAgICBpZiAob2xkUmVjb3JkaW5nKSB7CisgICAgICAgICAgICBjb25zdCBpbXBvcnRpbmcgPSB0
cnVlOworICAgICAgICAgICAgb2xkUmVjb3JkaW5nLnVubG9hZGVkKGltcG9ydGluZyk7CisgICAg
ICAgIH0KKworICAgICAgICB0aGlzLl9hY3RpdmVSZWNvcmRpbmcgPSBuZXdSZWNvcmRpbmc7CisK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVGltZWxpbmVNYW5hZ2Vy
LkV2ZW50LlJlY29yZGluZ0xvYWRlZCwge29sZFJlY29yZGluZ30pOworICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5UaW1lbGluZU1hbmFnZXIuRXZlbnQuUmVjb3JkaW5n
SW1wb3J0ZWQsIHtvdmVydmlld0RhdGF9KTsKKyAgICB9CisKICAgICBjb21wdXRlRWxhcHNlZFRp
bWUodGltZXN0YW1wKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVSZWNvcmRpbmcp
CkBAIC0xMDI2LDkgKzEwNzQsNiBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGlu
ZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKHNhbXBsZXMpIHsKICAgICAg
ICAgICAgIGxldCB7c3RhY2tUcmFjZXN9ID0gc2FtcGxlczsKICAgICAgICAgICAgIGxldCB0b3BE
b3duQ2FsbGluZ0NvbnRleHRUcmVlID0gdGhpcy5hY3RpdmVSZWNvcmRpbmcudG9wRG93bkNhbGxp
bmdDb250ZXh0VHJlZTsKLSAgICAgICAgICAgIGxldCBib3R0b21VcENhbGxpbmdDb250ZXh0VHJl
ZSA9IHRoaXMuYWN0aXZlUmVjb3JkaW5nLmJvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlOwotICAg
ICAgICAgICAgbGV0IHRvcEZ1bmN0aW9uc1RvcERvd25DYWxsaW5nQ29udGV4dFRyZWUgPSB0aGlz
LmFjdGl2ZVJlY29yZGluZy50b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlOwot
ICAgICAgICAgICAgbGV0IHRvcEZ1bmN0aW9uc0JvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlID0g
dGhpcy5hY3RpdmVSZWNvcmRpbmcudG9wRnVuY3Rpb25zQm90dG9tVXBDYWxsaW5nQ29udGV4dFRy
ZWU7CiAKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhIHBlci1zYW1wbGUgZHVyYXRpb24uCiAg
ICAgICAgICAgICBsZXQgdGltZXN0YW1wSW5kZXggPSAwOwpAQCAtMTA2MiwxMiArMTEwNyw3IEBA
IFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgaWYgKHRpbWVzdGFtcEluZGV4IDwgdGltZXN0YW1wQ291bnQpCiAg
ICAgICAgICAgICAgICAgc2FtcGxlRHVyYXRpb25zLmZpbGwoZGVmYXVsdER1cmF0aW9uLCBzYW1w
bGVEdXJhdGlvbkluZGV4KTsKIAotICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFj
a1RyYWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIHRvcERvd25DYWxsaW5nQ29u
dGV4dFRyZWUudXBkYXRlVHJlZVdpdGhTdGFja1RyYWNlKHN0YWNrVHJhY2VzW2ldLCBzYW1wbGVE
dXJhdGlvbnNbaV0pOwotICAgICAgICAgICAgICAgIGJvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVl
LnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRpb25z
W2ldKTsKLSAgICAgICAgICAgICAgICB0b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRU
cmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRp
b25zW2ldKTsKLSAgICAgICAgICAgICAgICB0b3BGdW5jdGlvbnNCb3R0b21VcENhbGxpbmdDb250
ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNrVHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1
cmF0aW9uc1tpXSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmFjdGl2ZVJlY29y
ZGluZy5pbml0aWFsaXplQ2FsbGluZ0NvbnRleHRUcmVlcyhzdGFja1RyYWNlcywgc2FtcGxlRHVy
YXRpb25zKTsKIAogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJhbnNmb3JtYXRpb24gc2hv
dWxkIG5vdCBiZSBuZWVkZWQgYWZ0ZXIgaW50cm9kdWNpbmcgUHJvZmlsZVZpZXcuCiAgICAgICAg
ICAgICAvLyBPbmNlIHdlIGVsaW1pbmF0ZSBQcm9maWxlTm9kZVRyZWVFbGVtZW50cyBhbmQgUHJv
ZmlsZU5vZGVEYXRhR3JpZE5vZGVzLgpAQCAtMTIxMyw2ICsxMjUzLDcgQEAgV0kuVGltZWxpbmVN
YW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiBXSS5UaW1l
bGluZU1hbmFnZXIuRXZlbnQgPSB7CiAgICAgUmVjb3JkaW5nQ3JlYXRlZDogInRpbWVsaW5lLW1h
bmFnZXItcmVjb3JkaW5nLWNyZWF0ZWQiLAogICAgIFJlY29yZGluZ0xvYWRlZDogInRpbWVsaW5l
LW1hbmFnZXItcmVjb3JkaW5nLWxvYWRlZCIsCisgICAgUmVjb3JkaW5nSW1wb3J0ZWQ6ICJ0aW1l
bGluZS1tYW5hZ2VyLXJlY29yZGluZy1pbXBvcnRlZCIsCiAgICAgQ2FwdHVyaW5nV2lsbFN0YXJ0
OiAidGltZWxpbmUtbWFuYWdlci1jYXB0dXJpbmctd2lsbC1zdGFydCIsCiAgICAgQ2FwdHVyaW5n
U3RhcnRlZDogInRpbWVsaW5lLW1hbmFnZXItY2FwdHVyaW5nLXN0YXJ0ZWQiLAogICAgIENhcHR1
cmluZ1N0b3BwZWQ6ICJ0aW1lbGluZS1tYW5hZ2VyLWNhcHR1cmluZy1zdG9wcGVkIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NQVVRpbWVs
aW5lUmVjb3JkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NQVVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IGVhMDdiZmMzMTM2Li4yMTY2ODkxZTE2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NQVVRp
bWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DUFVUaW1lbGluZVJlY29yZC5qcwpAQCAtMzYsOCArMzYsNyBAQCBXSS5DUFVUaW1l
bGluZVJlY29yZCA9IGNsYXNzIENQVVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVS
ZWNvcmQKIAogICAgICAgICB0aGlzLl90aW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAgICAgICAgIHRo
aXMuX3VzYWdlID0gdXNhZ2U7Ci0KLSAgICAgICAgdGhyZWFkcyA9IHRocmVhZHMgfHwgW107Cisg
ICAgICAgIHRoaXMuX3RocmVhZHMgPSB0aHJlYWRzIHx8IFtdOwogCiAgICAgICAgIHRoaXMuX21h
aW5UaHJlYWRVc2FnZSA9IDA7CiAgICAgICAgIHRoaXMuX3dlYmtpdFRocmVhZFVzYWdlID0gMDsK
QEAgLTQ1LDcgKzQ0LDcgQEAgV0kuQ1BVVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBDUFVUaW1lbGlu
ZVJlY29yZCBleHRlbmRzIFdJLlRpbWVsaW5lUmVjb3JkCiAgICAgICAgIHRoaXMuX3Vua25vd25U
aHJlYWRVc2FnZSA9IDA7CiAgICAgICAgIHRoaXMuX3dvcmtlcnNEYXRhID0gbnVsbDsKIAotICAg
ICAgICBmb3IgKGxldCB0aHJlYWQgb2YgdGhyZWFkcykgeworICAgICAgICBmb3IgKGxldCB0aHJl
YWQgb2YgdGhpcy5fdGhyZWFkcykgewogICAgICAgICAgICAgaWYgKHRocmVhZC50eXBlID09PSBJ
bnNwZWN0b3JCYWNrZW5kLmRvbWFpbnMuQ1BVUHJvZmlsZXIuVGhyZWFkSW5mb1R5cGUuTWFpbikg
ewogICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9tYWluVGhyZWFkVXNhZ2Us
ICJUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgbWFpbiB0aHJlYWQuIik7CiAgICAgICAgICAgICAg
ICAgdGhpcy5fbWFpblRocmVhZFVzYWdlICs9IHRocmVhZC51c2FnZTsKQEAgLTY5LDYgKzY4LDIz
IEBAIFdJLkNQVVRpbWVsaW5lUmVjb3JkID0gY2xhc3MgQ1BVVGltZWxpbmVSZWNvcmQgZXh0ZW5k
cyBXSS5UaW1lbGluZVJlY29yZAogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8g
RXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAgICB7CisgICAgICAgIHJldHVy
biBuZXcgV0kuQ1BVVGltZWxpbmVSZWNvcmQoanNvbik7CisgICAgfQorCisgICAgdG9KU09OKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisg
ICAgICAgICAgICB0aW1lc3RhbXA6IHRoaXMuX3RpbWVzdGFtcCwKKyAgICAgICAgICAgIHVzYWdl
OiB0aGlzLl91c2FnZSwKKyAgICAgICAgICAgIHRocmVhZHM6IHRoaXMuX3RocmVhZHMsCisgICAg
ICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdGltZXN0YW1wKCkgeyBy
ZXR1cm4gdGhpcy5fdGltZXN0YW1wOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMKaW5k
ZXggOTFlNjcyMzY3MDMuLmQ5ZmZiYzUyZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dhcmJhZ2VDb2xsZWN0aW9u
LmpzCkBAIC00NSw2ICs0NSwyNCBAQCBXSS5HYXJiYWdlQ29sbGVjdGlvbiA9IGNsYXNzIEdhcmJh
Z2VDb2xsZWN0aW9uCiAgICAgICAgIHJldHVybiBuZXcgV0kuR2FyYmFnZUNvbGxlY3Rpb24odHlw
ZSwgcGF5bG9hZC5zdGFydFRpbWUsIHBheWxvYWQuZW5kVGltZSk7CiAgICAgfQogCisgICAgLy8g
SW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAgICB7CisgICAg
ICAgIGxldCB7dHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lfSA9IGpzb247CisgICAgICAgIHJldHVy
biBuZXcgV0kuR2FyYmFnZUNvbGxlY3Rpb24odHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKKyAg
ICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IF9fdHlwZTogIkdhcmJhZ2VDb2xsZWN0aW9uIiwKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlw
ZSwKKyAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUsCisgICAgICAgICAgICBl
bmRUaW1lOiB0aGlzLmVuZFRpbWUsCisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGlj
CiAKICAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KQEAgLTU4LDYgKzc2LDYg
QEAgV0kuR2FyYmFnZUNvbGxlY3Rpb24gPSBjbGFzcyBHYXJiYWdlQ29sbGVjdGlvbgogfTsKIAog
V0kuR2FyYmFnZUNvbGxlY3Rpb24uVHlwZSA9IHsKLSAgICBQYXJ0aWFsOiBTeW1ib2woIlBhcnRp
YWwiKSwKLSAgICBGdWxsOiBTeW1ib2woIkZ1bGwiKQorICAgIFBhcnRpYWw6ICJwYXJ0aWFsIiwK
KyAgICBGdWxsOiAiZnVsbCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCmluZGV4IDIwNGNmM2ZiMDNjLi45Zjc5
OGIzYTY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0dlb21ldHJ5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9HZW9tZXRyeS5qcwpAQCAtMjg0LDYgKzI4NCwxOCBAQCBXSS5RdWFkID0gY2xh
c3MgUXVhZAogICAgICAgICB0aGlzLmhlaWdodCA9IE1hdGgucm91bmQoTWF0aC5zcXJ0KE1hdGgu
cG93KHF1YWRbMF0gLSBxdWFkWzZdLCAyKSArIE1hdGgucG93KHF1YWRbMV0gLSBxdWFkWzddLCAy
KSkpOwogICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21K
U09OKGpzb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdJLlF1YWQoanNvbik7CisgICAg
fQorCisgICAgdG9KU09OKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnRvUHJvdG9jb2wo
KTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIHRvUHJvdG9jb2woKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lUmVjb3JkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkLmpzCmluZGV4IGQxMGMwYjky
ZDZkLi4xMTE0MTdmYWQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwQWxsb2NhdGlvbnNU
aW1lbGluZVJlY29yZC5qcwpAQCAtMzYsNiArMzYsMzYgQEAgV0kuSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVSZWNvcmQgPSBjbGFzcyBIZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZCBleHRlbmRz
IFcKICAgICAgICAgdGhpcy5faGVhcFNuYXBzaG90ID0gaGVhcFNuYXBzaG90OwogICAgIH0KIAor
ICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAg
eworICAgICAgICAvLyBOT1RFOiBUaGlzIGp1c3QgZ29lcyB0aHJvdWdoIGFuZCBnZW5lcmF0ZXMg
YSBuZXcgaGVhcCBzbmFwc2hvdCwKKyAgICAgICAgLy8gaXQgaXMgbm90IHBlcmZlY3QgYnV0IGRv
ZXMgd2hhdCB3ZSB3YW50LiBJdCBhc3luY2hyb25vdXNseSBjcmVhdGVzCisgICAgICAgIC8vIGEg
aGVhcCBzbmFwc2hvdCBhdCB0aGUgcmlnaHQgdGltZSwgYW5kIGluc2VydCBpdCBpbnRvIHRoZSBh
Y3RpdmUKKyAgICAgICAgLy8gcmVjb3JkaW5nLCB3aGljaCBvbiBhbiBpbXBvcnQgc2hvdWxkIGJl
IHRoZSBuZXdseSBpbXBvcnRlZCByZWNvcmRpbmcuCisgICAgICAgIGxldCB7dGltZXN0YW1wLCB0
aXRsZSwgc25hcHNob3RTdHJpbmdEYXRhfSA9IGpzb247CisKKyAgICAgICAgbGV0IHdvcmtlclBy
b3h5ID0gV0kuSGVhcFNuYXBzaG90V29ya2VyUHJveHkuc2luZ2xldG9uKCk7CisgICAgICAgIHdv
cmtlclByb3h5LmNyZWF0ZUltcG9ydGVkU25hcHNob3Qoc25hcHNob3RTdHJpbmdEYXRhLCB0aXRs
ZSwgKHtvYmplY3RJZCwgc25hcHNob3Q6IHNlcmlhbGl6ZWRTbmFwc2hvdH0pID0+IHsKKyAgICAg
ICAgICAgIGxldCBzbmFwc2hvdCA9IFdJLkhlYXBTbmFwc2hvdFByb3h5LmRlc2VyaWFsaXplKG9i
amVjdElkLCBzZXJpYWxpemVkU25hcHNob3QpOworICAgICAgICAgICAgc25hcHNob3Quc25hcHNo
b3RTdHJpbmdEYXRhID0gc25hcHNob3RTdHJpbmdEYXRhOworICAgICAgICAgICAgV0kudGltZWxp
bmVNYW5hZ2VyLmhlYXBTbmFwc2hvdEFkZGVkKHRpbWVzdGFtcCwgc25hcHNob3QpOworICAgICAg
ICB9KTsKKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAg
ICAgICAgIHRpbWVzdGFtcDogdGhpcy5fdGltZXN0YW1wLAorICAgICAgICAgICAgdGl0bGU6IFdJ
LlRpbWVsaW5lVGFiQ29udGVudFZpZXcuZGlzcGxheU5hbWVGb3JSZWNvcmQodGhpcyksCisgICAg
ICAgICAgICBzbmFwc2hvdFN0cmluZ0RhdGE6IHRoaXMuX2hlYXBTbmFwc2hvdC5zbmFwc2hvdFN0
cmluZ0RhdGEsCisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQg
dGltZXN0YW1wKCkgeyByZXR1cm4gdGhpcy5fdGltZXN0YW1wOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNv
cmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0
VGltZWxpbmVSZWNvcmQuanMKaW5kZXggOTVmOGFmNWE2NTIuLmZhYTRiNmMyZTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGlt
ZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0xheW91dFRpbWVsaW5lUmVjb3JkLmpzCkBAIC02MSw2ICs2MSwyOSBAQCBXSS5MYXlv
dXRUaW1lbGluZVJlY29yZCA9IGNsYXNzIExheW91dFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0ku
VGltZWxpbmVSZWNvcmQKICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9y
dAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAgeworICAgICAgICBsZXQge2V2ZW50
VHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24s
IHF1YWR9ID0ganNvbjsKKyAgICAgICAgcXVhZCA9IHF1YWQgPyBXSS5RdWFkLmZyb21KU09OKHF1
YWQpIDogbnVsbDsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5MYXlvdXRUaW1lbGluZVJlY29yZChl
dmVudFR5cGUsIHN0YXJ0VGltZSwgZW5kVGltZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0
aW9uLCBxdWFkKTsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgLy8gRklY
TUU6IENhbGxGcmFtZXMKKyAgICAgICAgLy8gRklYTUU6IFNvdXJjZUNvZGVMb2NhdGlvbgorCisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAg
ICBldmVudFR5cGU6IHRoaXMuX2V2ZW50VHlwZSwKKyAgICAgICAgICAgIHN0YXJ0VGltZTogdGhp
cy5zdGFydFRpbWUsCisgICAgICAgICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUsCisgICAgICAg
ICAgICBxdWFkOiB0aGlzLl9xdWFkIHx8IHVuZGVmaW5lZCwKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IGV2ZW50VHlwZSgpCkBAIC05NywxMyArMTIwLDEzIEBA
IFdJLkxheW91dFRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0
ZW5kcyBXSS5UaW1lbGluZVJlY29yZAogfTsKIAogV0kuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZl
bnRUeXBlID0gewotICAgIEludmFsaWRhdGVTdHlsZXM6ICJsYXlvdXQtdGltZWxpbmUtcmVjb3Jk
LWludmFsaWRhdGUtc3R5bGVzIiwKLSAgICBSZWNhbGN1bGF0ZVN0eWxlczogImxheW91dC10aW1l
bGluZS1yZWNvcmQtcmVjYWxjdWxhdGUtc3R5bGVzIiwKLSAgICBJbnZhbGlkYXRlTGF5b3V0OiAi
bGF5b3V0LXRpbWVsaW5lLXJlY29yZC1pbnZhbGlkYXRlLWxheW91dCIsCi0gICAgRm9yY2VkTGF5
b3V0OiAibGF5b3V0LXRpbWVsaW5lLXJlY29yZC1mb3JjZWQtbGF5b3V0IiwKLSAgICBMYXlvdXQ6
ICJsYXlvdXQtdGltZWxpbmUtcmVjb3JkLWxheW91dCIsCi0gICAgUGFpbnQ6ICJsYXlvdXQtdGlt
ZWxpbmUtcmVjb3JkLXBhaW50IiwKLSAgICBDb21wb3NpdGU6ICJsYXlvdXQtdGltZWxpbmUtcmVj
b3JkLWNvbXBvc2l0ZSIKKyAgICBJbnZhbGlkYXRlU3R5bGVzOiAiaW52YWxpZGF0ZS1zdHlsZXMi
LAorICAgIFJlY2FsY3VsYXRlU3R5bGVzOiAicmVjYWxjdWxhdGUtc3R5bGVzIiwKKyAgICBJbnZh
bGlkYXRlTGF5b3V0OiAiaW52YWxpZGF0ZS1sYXlvdXQiLAorICAgIEZvcmNlZExheW91dDogImZv
cmNlZC1sYXlvdXQiLAorICAgIExheW91dDogImxheW91dCIsCisgICAgUGFpbnQ6ICJwYWludCIs
CisgICAgQ29tcG9zaXRlOiAiY29tcG9zaXRlIgogfTsKIAogV0kuTGF5b3V0VGltZWxpbmVSZWNv
cmQuVHlwZUlkZW50aWZpZXIgPSAibGF5b3V0LXRpbWVsaW5lLXJlY29yZCI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVkaWFUaW1lbGlu
ZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9N
ZWRpYVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDgxNDljMjQ3NWViLi4zNjFkZWRjZTQ0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlh
VGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL01lZGlhVGltZWxpbmVSZWNvcmQuanMKQEAgLTM3LDYgKzM3LDI3IEBAIFdJLk1l
ZGlhVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBNZWRpYVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0ku
VGltZWxpbmVSZWNvcmQKICAgICAgICAgdGhpcy5faXNMb3dQb3dlciA9IGlzTG93UG93ZXIgfHwg
ZmFsc2U7CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJv
bUpTT04oanNvbikKKyAgICB7ICAgICAgICAKKyAgICAgICAgbGV0IHtldmVudFR5cGUsIHRpbWVz
dGFtcH0gPSBqc29uOworICAgICAgICByZXR1cm4gbmV3IFdJLk1lZGlhVGltZWxpbmVSZWNvcmQo
ZXZlbnRUeXBlLCB0aW1lc3RhbXAsIGpzb24pOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAg
eworICAgICAgICAvLyBGSVhNRTogRE9NTm9kZQorCisgICAgICAgIHJldHVybiB7CisgICAgICAg
ICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICBldmVudFR5cGU6IHRoaXMuX2V2ZW50
VHlwZSwKKyAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy5zdGFydFRpbWUsCisgICAgICAgICAg
ICBkb21FdmVudDogdGhpcy5fZG9tRXZlbnQsCisgICAgICAgICAgICBpc0xvd1Bvd2VyOiB0aGlz
Ll9pc0xvd1Bvd2VyLAorICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAg
Z2V0IGV2ZW50VHlwZSgpIHsgcmV0dXJuIHRoaXMuX2V2ZW50VHlwZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVByZXNzdXJl
RXZlbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVt
b3J5UHJlc3N1cmVFdmVudC5qcwppbmRleCAwY2ZlY2E3NTFlMS4uOTQwYzM2OTE0YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlQ
cmVzc3VyZUV2ZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9NZW1vcnlQcmVzc3VyZUV2ZW50LmpzCkBAIC01Miw2ICs1MiwyMyBAQCBXSS5NZW1v
cnlQcmVzc3VyZUV2ZW50ID0gY2xhc3MgTWVtb3J5UHJlc3N1cmVFdmVudAogICAgICAgICByZXR1
cm4gbmV3IFdJLk1lbW9yeVByZXNzdXJlRXZlbnQodGltZXN0YW1wLCBzZXZlcml0eSk7CiAgICAg
fQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKworICAgIHN0YXRpYyBmcm9tSlNPTihqc29u
KQorICAgIHsKKyAgICAgICAgbGV0IHt0aW1lc3RhbXAsIHNldmVyaXR5fSA9IGpzb247CisgICAg
ICAgIHJldHVybiBuZXcgV0kuTWVtb3J5UHJlc3N1cmVFdmVudCh0aW1lc3RhbXAsIHNldmVyaXR5
KTsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgIHRpbWVzdGFtcDogdGhpcy5fdGltZXN0YW1wLAorICAgICAgICAgICAgc2V2ZXJpdHk6
IHRoaXMuX3NldmVyaXR5LAorICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAg
ICAgZ2V0IHRpbWVzdGFtcCgpIHsgcmV0dXJuIHRoaXMuX3RpbWVzdGFtcDsgfQpAQCAtNTksNiAr
NzYsNiBAQCBXSS5NZW1vcnlQcmVzc3VyZUV2ZW50ID0gY2xhc3MgTWVtb3J5UHJlc3N1cmVFdmVu
dAogfTsKIAogV0kuTWVtb3J5UHJlc3N1cmVFdmVudC5TZXZlcml0eSA9IHsKLSAgICBDcml0aWNh
bDogU3ltYm9sKCJDcml0aWNhbCIpLAotICAgIE5vbkNyaXRpY2FsOiBTeW1ib2woIk5vbkNyaXRp
Y2FsIiksCisgICAgQ3JpdGljYWw6ICJjcml0aWNhbCIsCisgICAgTm9uQ3JpdGljYWw6ICJub24t
Y3JpdGljYWwiLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qcwppbmRleCA2
Mzk1ODE3NWRjMy4uMWUzN2I5YTQ4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5VGltZWxpbmVSZWNv
cmQuanMKQEAgLTM0LDYgKzM0LDcgQEAgV0kuTWVtb3J5VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBN
ZW1vcnlUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJLlRpbWVsaW5lUmVjb3JkCiAKICAgICAgICAg
dGhpcy5fdGltZXN0YW1wID0gdGltZXN0YW1wOwogICAgICAgICB0aGlzLl9jYXRlZ29yaWVzID0g
V0kuTWVtb3J5VGltZWxpbmVSZWNvcmQubWVtb3J5Q2F0ZWdvcmllc0Zyb21Qcm90b2NvbChjYXRl
Z29yaWVzKTsKKyAgICAgICAgdGhpcy5fZXhwb3J0Q2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7CiAK
ICAgICAgICAgdGhpcy5fdG90YWxTaXplID0gMDsKICAgICAgICAgZm9yIChsZXQge3NpemV9IG9m
IGNhdGVnb3JpZXMpCkBAIC03OSw2ICs4MCwyMyBAQCBXSS5NZW1vcnlUaW1lbGluZVJlY29yZCA9
IGNsYXNzIE1lbW9yeVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKICAg
ICAgICAgXTsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBm
cm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAgbGV0IHt0aW1lc3RhbXAsIGNhdGVnb3JpZXN9
ID0ganNvbjsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5NZW1vcnlUaW1lbGluZVJlY29yZCh0aW1l
c3RhbXAsIGNhdGVnb3JpZXMpOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgdGlt
ZXN0YW1wOiB0aGlzLnN0YXJ0VGltZSwKKyAgICAgICAgICAgIGNhdGVnb3JpZXM6IHRoaXMuX2V4
cG9ydENhdGVnb3JpZXMsCisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAg
ICBnZXQgdGltZXN0YW1wKCkgeyByZXR1cm4gdGhpcy5fdGltZXN0YW1wOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJh
bWVUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDEwZGNhNDI3YTYx
Li41ZmQ4MTA4M2Y5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxp
bmVSZWNvcmQuanMKQEAgLTY5LDYgKzY5LDI3IEBAIFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVS
ZWNvcmQgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuCiAg
ICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBm
cm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAgbGV0IHtzdGFydFRpbWUsIGVuZFRpbWV9ID0g
anNvbjsKKyAgICAgICAgbGV0IHJlY29yZCA9IG5ldyBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5l
UmVjb3JkKHN0YXJ0VGltZSwgZW5kVGltZSk7CisgICAgICAgIHJlY29yZC5zZXR1cEZyYW1lSW5k
ZXgoKTsKKyAgICAgICAgcmV0dXJuIHJlY29yZDsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAg
IHsKKyAgICAgICAgLy8gRklYTUU6IGR1cmF0aW9uQnlUYXNrVHlwZSBkYXRhIGNhbm5vdCBiZSBj
YWxjdWxhdGVkIGlmIHRoaXMgZG9lcyBub3QgaGF2ZSBjaGlsZHJlbi4KKworICAgICAgICByZXR1
cm4geworICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgc3RhcnRUaW1l
OiB0aGlzLnN0YXJ0VGltZSwKKyAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZSwKKyAg
ICAgICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCBmcmFtZUluZGV4KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9S
ZXNvdXJjZS5qcwppbmRleCAzOGFlMWQ5ZjRjOC4uMjM3YzA1MzI0ZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2UuanMK
QEAgLTY2LDYgKzY2LDcgQEAgV0kuUmVzb3VyY2UgPSBjbGFzcyBSZXNvdXJjZSBleHRlbmRzIFdJ
LlNvdXJjZUNvZGUKICAgICAgICAgdGhpcy5fc3RhdHVzVGV4dCA9IG51bGw7CiAgICAgICAgIHRo
aXMuX2NhY2hlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9jYW5jZWxlZCA9IGZhbHNlOworICAg
ICAgICB0aGlzLl9maW5pc2hlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9mYWlsZWQgPSBmYWxz
ZTsKICAgICAgICAgdGhpcy5fZmFpbHVyZVJlYXNvblRleHQgPSBudWxsOwogICAgICAgICB0aGlz
Ll9yZWNlaXZlZE5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlVGltZWxpbmVSZWNv
cmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3Vy
Y2VUaW1lbGluZVJlY29yZC5qcwppbmRleCAxYjU0YTcwMmE1Ny4uYWJmZjJhNGE4ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJj
ZVRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9SZXNvdXJjZVRpbWVsaW5lUmVjb3JkLmpzCkBAIC0zMyw2ICszMywyNCBAQCBX
SS5SZXNvdXJjZVRpbWVsaW5lUmVjb3JkID0gY2xhc3MgUmVzb3VyY2VUaW1lbGluZVJlY29yZCBl
eHRlbmRzIFdJLlRpbWVsaW5lUmVjbwogICAgICAgICB0aGlzLl9yZXNvdXJjZS5hZGRFdmVudExp
c3RlbmVyKFdJLlJlc291cmNlLkV2ZW50LlRpbWVzdGFtcHNEaWRDaGFuZ2UsIHRoaXMuX2Rpc3Bh
dGNoVXBkYXRlZEV2ZW50LCB0aGlzKTsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQK
KworICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAgbGV0IHtlbnRyeSwg
YXJjaGl2ZVN0YXJ0VGltZX0gPSBqc29uOworICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IFdJ
LkxvY2FsUmVzb3VyY2UuZnJvbUhBUkVudHJ5KGVudHJ5LCBhcmNoaXZlU3RhcnRUaW1lKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBXSS5SZXNvdXJjZVRpbWVsaW5lUmVjb3JkKGxvY2FsUmVzb3VyY2Up
OworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgYXJjaGl2ZVN0YXJ0VGltZTogdGhp
cy5fcmVzb3VyY2UucmVxdWVzdFNlbnRXYWxsdGltZSAtIHRoaXMuc3RhcnRUaW1lLAorICAgICAg
ICAgICAgZW50cnk6IFdJLkhBUkJ1aWxkZXIuZW50cnkodGhpcy5fcmVzb3VyY2UsICIiKSwKKyAg
ICAgICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCByZXNvdXJjZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2Ny
aXB0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKaW5kZXggNWY1OWIwZDBiYTEuLjc3YmNh
MDA0M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVjb3JkLmpzCkBAIC00OCw2ICs0
OCwzMiBAQCBXSS5TY3JpcHRUaW1lbGluZVJlY29yZCA9IGNsYXNzIFNjcmlwdFRpbWVsaW5lUmVj
b3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKICAgICAgICAgfQogICAgIH0KIAorICAgIC8v
IEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAgeworICAg
ICAgICBsZXQge2V2ZW50VHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBzb3Vy
Y2VDb2RlTG9jYXRpb24sIGRldGFpbHMsIHByb2ZpbGVQYXlsb2FkfSA9IGpzb247CisKKyAgICAg
ICAgaWYgKHR5cGVvZiBkZXRhaWxzID09PSAib2JqZWN0IiAmJiBkZXRhaWxzLl9fdHlwZSA9PT0g
IkdhcmJhZ2VDb2xsZWN0aW9uIikKKyAgICAgICAgICAgIGRldGFpbHMgPSBXSS5HYXJiYWdlQ29s
bGVjdGlvbi5mcm9tSlNPTihkZXRhaWxzKTsKKworICAgICAgICByZXR1cm4gbmV3IFdJLlNjcmlw
dFRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVz
LCBzb3VyY2VDb2RlTG9jYXRpb24sIGRldGFpbHMsIHByb2ZpbGVQYXlsb2FkKTsKKyAgICB9CisK
KyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IENhbGxGcmFtZXMKKyAgICAg
ICAgLy8gRklYTUU6IFNvdXJjZUNvZGVMb2NhdGlvbgorCisgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICBldmVudFR5cGU6IHRoaXMuX2V2
ZW50VHlwZSwKKyAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUsCisgICAgICAg
ICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUsCisgICAgICAgICAgICBkZXRhaWxzOiB0aGlzLl9k
ZXRhaWxzLAorICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IGV2
ZW50VHlwZSgpCkBAIC0xODMsMjAgKzIwOSwyMCBAQCBXSS5TY3JpcHRUaW1lbGluZVJlY29yZCA9
IGNsYXNzIFNjcmlwdFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKIH07
CiAKIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZSA9IHsKLSAgICBTY3JpcHRFdmFs
dWF0ZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3JkLXNjcmlwdC1ldmFsdWF0ZWQiLAotICAgIEFQ
SVNjcmlwdEV2YWx1YXRlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtYXBpLXNjcmlwdC1ldmFs
dWF0ZWQiLAotICAgIE1pY3JvdGFza0Rpc3BhdGNoZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3Jk
LW1pY3JvdGFzay1kaXNwYXRjaGVkIiwKLSAgICBFdmVudERpc3BhdGNoZWQ6ICJzY3JpcHQtdGlt
ZWxpbmUtcmVjb3JkLWV2ZW50LWRpc3BhdGNoZWQiLAotICAgIFByb2JlU2FtcGxlUmVjb3JkZWQ6
ICJzY3JpcHQtdGltZWxpbmUtcmVjb3JkLXByb2JlLXNhbXBsZS1yZWNvcmRlZCIsCi0gICAgVGlt
ZXJGaXJlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtdGltZXItZmlyZWQiLAotICAgIFRpbWVy
SW5zdGFsbGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC10aW1lci1pbnN0YWxsZWQiLAotICAg
IFRpbWVyUmVtb3ZlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtdGltZXItcmVtb3ZlZCIsCi0g
ICAgQW5pbWF0aW9uRnJhbWVGaXJlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtYW5pbWF0aW9u
LWZyYW1lLWZpcmVkIiwKLSAgICBBbmltYXRpb25GcmFtZVJlcXVlc3RlZDogInNjcmlwdC10aW1l
bGluZS1yZWNvcmQtYW5pbWF0aW9uLWZyYW1lLXJlcXVlc3RlZCIsCi0gICAgQW5pbWF0aW9uRnJh
bWVDYW5jZWxlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bGVkIiwKLSAgICBPYnNlcnZlckNhbGxiYWNrOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC1vYnNl
cnZlci1jYWxsYmFjayIsCi0gICAgQ29uc29sZVByb2ZpbGVSZWNvcmRlZDogInNjcmlwdC10aW1l
bGluZS1yZWNvcmQtY29uc29sZS1wcm9maWxlLXJlY29yZGVkIiwKLSAgICBHYXJiYWdlQ29sbGVj
dGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC1nYXJiYWdlLWNvbGxlY3RlZCIsCisgICAgU2Ny
aXB0RXZhbHVhdGVkOiAic2NyaXB0LWV2YWx1YXRlZCIsCisgICAgQVBJU2NyaXB0RXZhbHVhdGVk
OiAiYXBpLXNjcmlwdC1ldmFsdWF0ZWQiLAorICAgIE1pY3JvdGFza0Rpc3BhdGNoZWQ6ICJtaWNy
b3Rhc2stZGlzcGF0Y2hlZCIsCisgICAgRXZlbnREaXNwYXRjaGVkOiAiZXZlbnQtZGlzcGF0Y2hl
ZCIsCisgICAgUHJvYmVTYW1wbGVSZWNvcmRlZDogInByb2JlLXNhbXBsZS1yZWNvcmRlZCIsCisg
ICAgVGltZXJGaXJlZDogInRpbWVyLWZpcmVkIiwKKyAgICBUaW1lckluc3RhbGxlZDogInRpbWVy
LWluc3RhbGxlZCIsCisgICAgVGltZXJSZW1vdmVkOiAidGltZXItcmVtb3ZlZCIsCisgICAgQW5p
bWF0aW9uRnJhbWVGaXJlZDogImFuaW1hdGlvbi1mcmFtZS1maXJlZCIsCisgICAgQW5pbWF0aW9u
RnJhbWVSZXF1ZXN0ZWQ6ICJhbmltYXRpb24tZnJhbWUtcmVxdWVzdGVkIiwKKyAgICBBbmltYXRp
b25GcmFtZUNhbmNlbGVkOiAiYW5pbWF0aW9uLWZyYW1lLWNhbmNlbGVkIiwKKyAgICBPYnNlcnZl
ckNhbGxiYWNrOiAib2JzZXJ2ZXItY2FsbGJhY2siLAorICAgIENvbnNvbGVQcm9maWxlUmVjb3Jk
ZWQ6ICJjb25zb2xlLXByb2ZpbGUtcmVjb3JkZWQiLAorICAgIEdhcmJhZ2VDb2xsZWN0ZWQ6ICJn
YXJiYWdlLWNvbGxlY3RlZCIsCiB9OwogCiBXSS5TY3JpcHRUaW1lbGluZVJlY29yZC5FdmVudFR5
cGUuZGlzcGxheU5hbWUgPSBmdW5jdGlvbihldmVudFR5cGUsIGRldGFpbHMsIGluY2x1ZGVEZXRh
aWxzSW5NYWluVGl0bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwUmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwUmVzb3VyY2UuanMKaW5kZXggMDlhODFk
NWZhZDguLmNjMDhkZTU0NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwUmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJjZU1hcFJlc291cmNlLmpzCkBAIC03
NCw3ICs3NCw3IEBAIFdJLlNvdXJjZU1hcFJlc291cmNlID0gY2xhc3MgU291cmNlTWFwUmVzb3Vy
Y2UgZXh0ZW5kcyBXSS5SZXNvdXJjZQogICAgICAgICByZXR1cm4gcmVzb3VyY2VVUkxDb21wb25l
bnRzLnBhdGguc3Vic3RyaW5nKHNvdXJjZU1hcHBpbmdCYXNlUGF0aFVSTENvbXBvbmVudHMucGF0
aC5sZW5ndGgsIHJlc291cmNlVVJMQ29tcG9uZW50cy5sZW5ndGgpOwogICAgIH0KIAotICAgIHJl
cXVlc3RDb250ZW50RnJvbUJhY2tlbmQoY2FsbGJhY2spCisgICAgcmVxdWVzdENvbnRlbnRGcm9t
QmFja2VuZCgpCiAgICAgewogICAgICAgICAvLyBSZXZlcnQgdGhlIG1hcmtBc0ZpbmlzaGVkIHRo
YXQgd2FzIGRvbmUgaW4gdGhlIGNvbnN0cnVjdG9yLgogICAgICAgICB0aGlzLnJldmVydE1hcmtB
c0ZpbmlzaGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIuanMKaW5kZXggZGUwNjlhNzUzMjMuLmRk
NDdhMzY1YmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lTWFya2VyLmpzCkBAIC0zNiw4ICszNiwyOCBAQCBX
SS5UaW1lbGluZU1hcmtlciA9IGNsYXNzIFRpbWVsaW5lTWFya2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIHRoaXMuX2RldGFpbHMgPSBkZXRhaWxzIHx8IG51bGw7CiAgICAgfQogCisgICAg
Ly8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAgICB7Cisg
ICAgICAgIGxldCB7dGltZSwgdHlwZSwgZGV0YWlsc30gPSBqc29uOworICAgICAgICByZXR1cm4g
bmV3IFdJLlRpbWVsaW5lTWFya2VyKHRpbWUsIHR5cGUsIGRldGFpbHMpOworICAgIH0KKworICAg
IHRvSlNPTigpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdGltZTogdGhp
cy5fdGltZSwKKyAgICAgICAgICAgIHR5cGU6IHRoaXMuX3R5cGUsCisgICAgICAgICAgICBkZXRh
aWxzOiB0aGlzLl9kZXRhaWxzIHx8IHVuZGVmaW5lZCwKKyAgICAgICAgfTsKKyAgICB9CisKICAg
ICAvLyBQdWJsaWMKIAorICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQorICAg
IGdldCBkZXRhaWxzKCkgeyByZXR1cm4gdGhpcy5fZGV0YWlsczsgfQorCiAgICAgZ2V0IHRpbWUo
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWU7CkBAIC01NiwxNiArNzYsNiBAQCBX
SS5UaW1lbGluZU1hcmtlciA9IGNsYXNzIFRpbWVsaW5lTWFya2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVGltZWxpbmVNYXJr
ZXIuRXZlbnQuVGltZUNoYW5nZWQpOwogICAgIH0KLQotICAgIGdldCB0eXBlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl90eXBlOwotICAgIH0KLQotICAgIGdldCBkZXRhaWxzKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9kZXRhaWxzOwotICAgIH0KIH07CiAKIFdJLlRpbWVs
aW5lTWFya2VyLkV2ZW50ID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDIwMTlhOGQ2
MTUzLi5hYWRjMDMxMTc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZC5qcwpAQCAtNDIsNiArNDIs
MzggQEAgV0kuVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IFtdOwogICAgIH0KIAorICAgIC8vIElt
cG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAgeworICAgICAg
ICBzd2l0Y2ggKGpzb24udHlwZSkgeworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5
cGUuTmV0d29yazoKKyAgICAgICAgICAgIHJldHVybiBXSS5SZXNvdXJjZVRpbWVsaW5lUmVjb3Jk
LmZyb21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuTGF5
b3V0OgorICAgICAgICAgICAgcmV0dXJuIFdJLkxheW91dFRpbWVsaW5lUmVjb3JkLmZyb21KU09O
KGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuU2NyaXB0OgorICAg
ICAgICAgICAgcmV0dXJuIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLmZyb21KU09OKGpzb24pOwor
ICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuUmVuZGVyaW5nRnJhbWU6CisgICAg
ICAgICAgICByZXR1cm4gV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5mcm9tSlNPTihq
c29uKTsKKyAgICAgICAgY2FzZSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLkNQVToKKyAgICAgICAg
ICAgIHJldHVybiBXSS5DUFVUaW1lbGluZVJlY29yZC5mcm9tSlNPTihqc29uKTsKKyAgICAgICAg
Y2FzZSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLk1lbW9yeToKKyAgICAgICAgICAgIHJldHVybiBX
SS5NZW1vcnlUaW1lbGluZVJlY29yZC5mcm9tSlNPTihqc29uKTsKKyAgICAgICAgY2FzZSBXSS5U
aW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxvY2F0aW9uczoKKyAgICAgICAgICAgIHJldHVybiBX
SS5IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZC5mcm9tSlNPTihqc29uKTsKKyAgICAgICAg
Y2FzZSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLk1lZGlhOgorICAgICAgICAgICAgcmV0dXJuIFdJ
Lk1lZGlhVGltZWxpbmVSZWNvcmQuZnJvbUpTT04oanNvbik7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIFRpbWVsaW5lUmVjb3JkLlR5cGU6ICIg
KyBqc29uLnR5cGUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgdGhyb3cgV0kuTm90SW1wbGVtZW50ZWRF
cnJvci5zdWJjbGFzc011c3RPdmVycmlkZSgpOworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAg
ICAgZ2V0IHR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzCmluZGV4IDlhZTc2Mzg0
MzhiLi45Y2JjYjUxYTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZGluZy5qcwpAQCAtMzQs
NyArMzQsMTkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGlu
ZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9kaXNwbGF5TmFtZSA9IGRpc3BsYXlO
YW1lOwogICAgICAgICB0aGlzLl9jYXB0dXJpbmcgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fcmVh
ZG9ubHkgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5faW1wb3J0ZWQgPSBmYWxzZTsKICAgICAgICAg
dGhpcy5faW5zdHJ1bWVudHMgPSBpbnN0cnVtZW50cyB8fCBbXTsKKworICAgICAgICB0aGlzLl9z
dGFydFRpbWUgPSBOYU47CisgICAgICAgIHRoaXMuX2VuZFRpbWUgPSBOYU47CisgICAgICAgIHRo
aXMuX2Rpc2NvbnRpbnVpdGllcyA9IG51bGw7CisKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YVJl
Y29yZHMgPSBudWxsOworICAgICAgICB0aGlzLl9leHBvcnREYXRhTWFya2VycyA9IG51bGw7Cisg
ICAgICAgIHRoaXMuX2V4cG9ydERhdGFNZW1vcnlQcmVzc3VyZUV2ZW50cyA9IG51bGw7CisgICAg
ICAgIHRoaXMuX2V4cG9ydERhdGFTYW1wbGVTdGFja1RyYWNlcyA9IG51bGw7CisgICAgICAgIHRo
aXMuX2V4cG9ydERhdGFTYW1wbGVEdXJhdGlvbnMgPSBudWxsOworCiAgICAgICAgIHRoaXMuX3Rv
cERvd25DYWxsaW5nQ29udGV4dFRyZWUgPSBuZXcgV0kuQ2FsbGluZ0NvbnRleHRUcmVlKFdJLkNh
bGxpbmdDb250ZXh0VHJlZS5UeXBlLlRvcERvd24pOwogICAgICAgICB0aGlzLl9ib3R0b21VcENh
bGxpbmdDb250ZXh0VHJlZSA9IG5ldyBXSS5DYWxsaW5nQ29udGV4dFRyZWUoV0kuQ2FsbGluZ0Nv
bnRleHRUcmVlLlR5cGUuQm90dG9tVXApOwogICAgICAgICB0aGlzLl90b3BGdW5jdGlvbnNUb3BE
b3duQ2FsbGluZ0NvbnRleHRUcmVlID0gbmV3IFdJLkNhbGxpbmdDb250ZXh0VHJlZShXSS5DYWxs
aW5nQ29udGV4dFRyZWUuVHlwZS5Ub3BGdW5jdGlvbnNUb3BEb3duKTsKQEAgLTYwLDEzICs3Miw4
NSBAQCBXSS5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBXSS5zaGFyZWRBcHAuZGVidWdnYWJsZVR5cGUg
PT09IFdJLkRlYnVnZ2FibGVUeXBlLldlYjsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBv
cnQKKworICAgIHN0YXRpYyBpbXBvcnQoaWRlbnRpZmllciwganNvbiwgZGlzcGxheU5hbWUpCisg
ICAgeworICAgICAgICBsZXQge3N0YXJ0VGltZSwgZW5kVGltZSwgZGlzY29udGludWl0aWVzLCBp
bnN0cnVtZW50VHlwZXMsIHJlY29yZHMsIG1hcmtlcnMsIG1lbW9yeVByZXNzdXJlRXZlbnRzLCBz
YW1wbGVTdGFja1RyYWNlcywgc2FtcGxlRHVyYXRpb25zfSA9IGpzb247CisgICAgICAgIGxldCBp
bXBvcnRlZERpc3BsYXlOYW1lID0gV0kuVUlTdHJpbmcoIkltcG9ydGVkIC0gJXMiKS5mb3JtYXQo
ZGlzcGxheU5hbWUpOworICAgICAgICBsZXQgaW5zdHJ1bWVudHMgPSBpbnN0cnVtZW50VHlwZXMu
bWFwKCh0eXBlKSA9PiBXSS5JbnN0cnVtZW50LmNyZWF0ZUZvclRpbWVsaW5lVHlwZSh0eXBlKSk7
CisgICAgICAgIGxldCByZWNvcmRpbmcgPSBuZXcgV0kuVGltZWxpbmVSZWNvcmRpbmcoaWRlbnRp
ZmllciwgaW1wb3J0ZWREaXNwbGF5TmFtZSwgaW5zdHJ1bWVudHMpOworCisgICAgICAgIHJlY29y
ZGluZy5fcmVhZG9ubHkgPSB0cnVlOworICAgICAgICByZWNvcmRpbmcuX2ltcG9ydGVkID0gdHJ1
ZTsKKyAgICAgICAgcmVjb3JkaW5nLl9zdGFydFRpbWUgPSBzdGFydFRpbWU7CisgICAgICAgIHJl
Y29yZGluZy5fZW5kVGltZSA9IGVuZFRpbWU7CisgICAgICAgIHJlY29yZGluZy5fZGlzY29udGlu
dWl0aWVzID0gZGlzY29udGludWl0aWVzOworCisgICAgICAgIHJlY29yZGluZy5pbml0aWFsaXpl
Q2FsbGluZ0NvbnRleHRUcmVlcyhzYW1wbGVTdGFja1RyYWNlcywgc2FtcGxlRHVyYXRpb25zKTsK
KworICAgICAgICBmb3IgKGxldCByZWNvcmRKU09OIG9mIHJlY29yZHMpIHsKKyAgICAgICAgICAg
IGxldCByZWNvcmQgPSBXSS5UaW1lbGluZVJlY29yZC5mcm9tSlNPTihyZWNvcmRKU09OKTsKKyAg
ICAgICAgICAgIGlmIChyZWNvcmQpIHsKKyAgICAgICAgICAgICAgICByZWNvcmRpbmcuYWRkUmVj
b3JkKHJlY29yZCk7CisKKyAgICAgICAgICAgICAgICBpZiAocmVjb3JkIGluc3RhbmNlb2YgV0ku
U2NyaXB0VGltZWxpbmVSZWNvcmQpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZC5wcm9maWxl
UGF5bG9hZCA9IHJlY29yZGluZy5fdG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZS50b0NQVVByb2Zp
bGVQYXlsb2FkKHJlY29yZC5zdGFydFRpbWUsIHJlY29yZC5lbmRUaW1lKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IG1lbW9yeVByZXNzdXJlSlNPTiBvZiBt
ZW1vcnlQcmVzc3VyZUV2ZW50cykgeworICAgICAgICAgICAgbGV0IG1lbW9yeVByZXNzdXJlRXZl
bnQgPSBXSS5NZW1vcnlQcmVzc3VyZUV2ZW50LmZyb21KU09OKG1lbW9yeVByZXNzdXJlSlNPTik7
CisgICAgICAgICAgICBpZiAobWVtb3J5UHJlc3N1cmVFdmVudCkKKyAgICAgICAgICAgICAgICBy
ZWNvcmRpbmcuYWRkTWVtb3J5UHJlc3N1cmVFdmVudChtZW1vcnlQcmVzc3VyZUV2ZW50KTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIEFkZCBtYXJrZXJzIG9uY2Ugd2UndmUgdHJhbnNpdGlvbmVk
IHRoZSBhY3RpdmUgcmVjb3JkaW5nLgorICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAg
ICAgICAgIHJlY29yZGluZy5fX2ltcG9ydGluZyA9IHRydWU7CisKKyAgICAgICAgICAgIGZvciAo
bGV0IG1hcmtlckpTT04gb2YgbWFya2VycykgeworICAgICAgICAgICAgICAgIGxldCBtYXJrZXIg
PSBXSS5UaW1lbGluZU1hcmtlci5mcm9tSlNPTihtYXJrZXJKU09OKTsKKyAgICAgICAgICAgICAg
ICBpZiAobWFya2VyKQorICAgICAgICAgICAgICAgICAgICByZWNvcmRpbmcuYWRkRXZlbnRNYXJr
ZXIobWFya2VyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVjb3JkaW5nLl9faW1w
b3J0aW5nID0gZmFsc2U7CisgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiByZWNvcmRpbmc7
CisgICAgfQorCisgICAgZXhwb3J0RGF0YSgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLmNhbkV4cG9ydCgpLCAiQXR0ZW1wdGVkIHRvIGV4cG9ydCBhIHJlY29yZGluZyB3aGlj
aCBzaG91bGQgbm90IGJlIGV4cG9ydGFibGUuIik7CisKKyAgICAgICAgLy8gRklYTUU6IE92ZXJ2
aWV3IGRhdGEgKHNvdXJjZUNvZGVUaW1lbGluZXNNYXApLgorICAgICAgICAvLyBGSVhNRTogUmVj
b3JkIGhpZXJhcmNoeSAocGFyZW50IC8gY2hpbGQgcmVsYXRpb25zaGlwKSBpcyBsb3N0LgorCisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5fZGlzcGxheU5h
bWUsCisgICAgICAgICAgICBzdGFydFRpbWU6IHRoaXMuX3N0YXJ0VGltZSwKKyAgICAgICAgICAg
IGVuZFRpbWU6IHRoaXMuX2VuZFRpbWUsCisgICAgICAgICAgICBkaXNjb250aW51aXRpZXM6IHRo
aXMuX2Rpc2NvbnRpbnVpdGllcywKKyAgICAgICAgICAgIGluc3RydW1lbnRUeXBlczogdGhpcy5f
aW5zdHJ1bWVudHMubWFwKCh4KSA9PiB4LnRpbWVsaW5lUmVjb3JkVHlwZSksCisgICAgICAgICAg
ICByZWNvcmRzOiB0aGlzLl9leHBvcnREYXRhUmVjb3JkcywKKyAgICAgICAgICAgIG1hcmtlcnM6
IHRoaXMuX2V4cG9ydERhdGFNYXJrZXJzLAorICAgICAgICAgICAgbWVtb3J5UHJlc3N1cmVFdmVu
dHM6IHRoaXMuX2V4cG9ydERhdGFNZW1vcnlQcmVzc3VyZUV2ZW50cywKKyAgICAgICAgICAgIHNh
bXBsZVN0YWNrVHJhY2VzOiB0aGlzLl9leHBvcnREYXRhU2FtcGxlU3RhY2tUcmFjZXMsCisgICAg
ICAgICAgICBzYW1wbGVEdXJhdGlvbnM6IHRoaXMuX2V4cG9ydERhdGFTYW1wbGVEdXJhdGlvbnMs
CisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgZGlzcGxheU5h
bWUoKSB7IHJldHVybiB0aGlzLl9kaXNwbGF5TmFtZTsgfQogICAgIGdldCBpZGVudGlmaWVyKCkg
eyByZXR1cm4gdGhpcy5faWRlbnRpZmllcjsgfQogICAgIGdldCB0aW1lbGluZXMoKSB7IHJldHVy
biB0aGlzLl90aW1lbGluZXM7IH0KICAgICBnZXQgaW5zdHJ1bWVudHMoKSB7IHJldHVybiB0aGlz
Ll9pbnN0cnVtZW50czsgfQorICAgIGdldCBjYXB0dXJpbmcoKSB7IHJldHVybiB0aGlzLl9jYXB0
dXJpbmc7IH0KICAgICBnZXQgcmVhZG9ubHkoKSB7IHJldHVybiB0aGlzLl9yZWFkb25seTsgfQor
ICAgIGdldCBpbXBvcnRlZCgpIHsgcmV0dXJuIHRoaXMuX2ltcG9ydGVkOyB9CiAgICAgZ2V0IHN0
YXJ0VGltZSgpIHsgcmV0dXJuIHRoaXMuX3N0YXJ0VGltZTsgfQogICAgIGdldCBlbmRUaW1lKCkg
eyByZXR1cm4gdGhpcy5fZW5kVGltZTsgfQogCkBAIC0xMTMsOSArMTk3LDkgQEAgV0kuVGltZWxp
bmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB1bmxvYWRlZCgpCisgICAgdW5sb2Fk
ZWQoaW1wb3J0aW5nKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuaXNFbXB0
eSgpLCAiU2hvdWxkbid0IHVubG9hZCBhbiBlbXB0eSByZWNvcmRpbmc7IGl0IHNob3VsZCBiZSBy
ZXVzZWQgaW5zdGVhZC4iKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaW1wb3J0aW5nIHx8ICF0
aGlzLmlzRW1wdHkoKSwgIlNob3VsZG4ndCB1bmxvYWQgYW4gZW1wdHkgcmVjb3JkaW5nOyBpdCBz
aG91bGQgYmUgcmV1c2VkIGluc3RlYWQuIik7CiAKICAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSB0
cnVlOwogCkBAIC0xMjcsMTAgKzIxMSwxNyBAQCBXSS5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNz
IFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCF0aGlzLl9yZWFkb25seSwgIkNhbid0IHJlc2V0IGEgcmVhZC1vbmx5IHJlY29yZGluZy4i
KTsKIAogICAgICAgICB0aGlzLl9zb3VyY2VDb2RlVGltZWxpbmVzTWFwID0gbmV3IE1hcDsKKwog
ICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSBOYU47CiAgICAgICAgIHRoaXMuX2VuZFRpbWUgPSBO
YU47CiAgICAgICAgIHRoaXMuX2Rpc2NvbnRpbnVpdGllcyA9IFtdOwogCisgICAgICAgIHRoaXMu
X2V4cG9ydERhdGFSZWNvcmRzID0gW107CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNYXJrZXJz
ID0gW10KKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YU1lbW9yeVByZXNzdXJlRXZlbnRzID0gW107
CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFTYW1wbGVTdGFja1RyYWNlcyA9IFtdOworICAgICAg
ICB0aGlzLl9leHBvcnREYXRhU2FtcGxlRHVyYXRpb25zID0gW107CisKICAgICAgICAgdGhpcy5f
dG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZS5yZXNldCgpOwogICAgICAgICB0aGlzLl9ib3R0b21V
cENhbGxpbmdDb250ZXh0VHJlZS5yZXNldCgpOwogICAgICAgICB0aGlzLl90b3BGdW5jdGlvbnNU
b3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlLnJlc2V0KCk7CkBAIC0xOTIsNyArMjgzLDkgQEAgV0ku
VGltZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgYWRkRXZlbnRNYXJrZXIobWFya2VyKQogICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLl9jYXB0dXJpbmcpCisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNYXJrZXJzLnB1c2gobWFy
a2VyKTsKKworICAgICAgICBpZiAoIXRoaXMuX2NhcHR1cmluZyAmJiAhdGhpcy5fX2ltcG9ydGlu
ZykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXSS5UaW1lbGluZVJlY29yZGluZy5FdmVudC5NYXJrZXJBZGRlZCwge21hcmtlcn0p
OwpAQCAtMjAwLDcgKzI5Myw5IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxp
bmVSZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGFkZFJlY29yZChyZWNvcmQpCiAg
ICAgewotICAgICAgICB2YXIgdGltZWxpbmUgPSB0aGlzLl90aW1lbGluZXMuZ2V0KHJlY29yZC50
eXBlKTsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YVJlY29yZHMucHVzaChyZWNvcmQpOworCisg
ICAgICAgIGxldCB0aW1lbGluZSA9IHRoaXMuX3RpbWVsaW5lcy5nZXQocmVjb3JkLnR5cGUpOwog
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aW1lbGluZSwgcmVjb3JkLCB0aGlzLl90aW1lbGluZXMp
OwogICAgICAgICBpZiAoIXRpbWVsaW5lKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQ3LDYg
KzM0Miw4IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmcg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGFkZE1lbW9yeVByZXNzdXJlRXZlbnQobWVtb3J5UHJl
c3N1cmVFdmVudCkKICAgICB7CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNZW1vcnlQcmVzc3Vy
ZUV2ZW50cy5wdXNoKG1lbW9yeVByZXNzdXJlRXZlbnQpOworCiAgICAgICAgIGxldCBtZW1vcnlU
aW1lbGluZSA9IHRoaXMuX3RpbWVsaW5lcy5nZXQoV0kuVGltZWxpbmVSZWNvcmQuVHlwZS5NZW1v
cnkpOwogICAgICAgICBjb25zb2xlLmFzc2VydChtZW1vcnlUaW1lbGluZSwgdGhpcy5fdGltZWxp
bmVzKTsKICAgICAgICAgaWYgKCFtZW1vcnlUaW1lbGluZSkKQEAgLTMyNiw2ICs0MjMsMzUgQEAg
V0kuVGltZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICB9CiAgICAgfQogCisgICAgaW5pdGlhbGl6ZUNhbGxpbmdDb250ZXh0
VHJlZXMoc3RhY2tUcmFjZXMsIHNhbXBsZUR1cmF0aW9ucykKKyAgICB7CisgICAgICAgIHRoaXMu
X2V4cG9ydERhdGFTYW1wbGVTdGFja1RyYWNlcyA9IHN0YWNrVHJhY2VzOworICAgICAgICB0aGlz
Ll9leHBvcnREYXRhU2FtcGxlRHVyYXRpb25zID0gc2FtcGxlRHVyYXRpb25zOworCisgICAgICAg
IGxldCB0b3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlID0gdGhpcy5fdG9wRG93bkNhbGxpbmdDb250
ZXh0VHJlZTsKKyAgICAgICAgbGV0IGJvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlID0gdGhpcy5f
Ym90dG9tVXBDYWxsaW5nQ29udGV4dFRyZWU7CisgICAgICAgIGxldCB0b3BGdW5jdGlvbnNUb3BE
b3duQ2FsbGluZ0NvbnRleHRUcmVlID0gdGhpcy5fdG9wRnVuY3Rpb25zVG9wRG93bkNhbGxpbmdD
b250ZXh0VHJlZTsKKyAgICAgICAgbGV0IHRvcEZ1bmN0aW9uc0JvdHRvbVVwQ2FsbGluZ0NvbnRl
eHRUcmVlID0gdGhpcy5fdG9wRnVuY3Rpb25zQm90dG9tVXBDYWxsaW5nQ29udGV4dFRyZWU7CisK
KyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFja1RyYWNlcy5sZW5ndGg7IGkrKykgewor
ICAgICAgICAgICAgdG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNr
VHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7CisgICAgICAgICAgICBi
b3R0b21VcENhbGxpbmdDb250ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNrVHJhY2Uoc3RhY2tU
cmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7CisgICAgICAgICAgICB0b3BGdW5jdGlvbnNU
b3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1Ry
YWNlc1tpXSwgc2FtcGxlRHVyYXRpb25zW2ldKTsKKyAgICAgICAgICAgIHRvcEZ1bmN0aW9uc0Jv
dHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1Ry
YWNlc1tpXSwgc2FtcGxlRHVyYXRpb25zW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNh
bkV4cG9ydCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY2FwdHVyaW5nKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChpc05hTih0aGlzLl9zdGFydFRpbWUpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KwogICAgIC8vIFByaXZhdGUKIAogICAgIF9rZXlGb3JSZWNvcmQocmVjb3JkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1BVVGltZWxpbmVP
dmVydmlld0dyYXBoLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoLmpzCmluZGV4IGE1MmFmNWRmNDcwLi5lZjEzMzdm
ZGY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NQVVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwpAQCAtNTEs
NiArNTEsOSBAQCBXSS5DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBjbGFzcyBDUFVUaW1lbGlu
ZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS5UaW1lbGluZQogICAgICAgICB0aGlzLl9sYXN0U2Vs
ZWN0ZWRSZWNvcmRJbkxheW91dCA9IG51bGw7CiAKICAgICAgICAgdGhpcy5yZXNldCgpOworCisg
ICAgICAgIGZvciAobGV0IHJlY29yZCBvZiB0aGlzLl9jcHVUaW1lbGluZS5yZWNvcmRzKQorICAg
ICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFN0
YXRpYwpAQCAtMjEyLDggKzIxNSwxMyBAQCBXSS5DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBj
bGFzcyBDUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS5UaW1lbGluZQogICAgIHsK
ICAgICAgICAgbGV0IGNwdVRpbWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAKKyAg
ICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChjcHVUaW1lbGluZVJlY29yZCk7CisKKyAgICAgICAg
dGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF9wcm9jZXNzUmVjb3JkKGNwdVRpbWVs
aW5lUmVjb3JkKQorICAgIHsKICAgICAgICAgdGhpcy5fbWF4VXNhZ2UgPSBNYXRoLm1heCh0aGlz
Ll9tYXhVc2FnZSwgY3B1VGltZWxpbmVSZWNvcmQudXNhZ2UpOwotCi0gICAgICAgIHRoaXMubmVl
ZHNMYXlvdXQoKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3Zl
cnZpZXdHcmFwaC5jc3MKaW5kZXggODkzNTQ4NzE2YTAuLjhkZTRkMmJjODFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGlu
ZU92ZXJ2aWV3R3JhcGguY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jc3MKQEAgLTIzLDE1ICsyMywx
NSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS50aW1lbGlu
ZS1vdmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93IHsKKy50aW1lbGluZS1vdmVydmll
dy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgtcm93IHsKICAgICBoZWlnaHQ6IDE2cHg7
CiB9CiAKLS50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93ID4gLnRp
bWVsaW5lLXJlY29yZC1iYXIgeworLnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBoLmxheW91dC1vdmVy
dmlldyA+IC5ncmFwaC1yb3cgPiAudGltZWxpbmUtcmVjb3JkLWJhciB7CiAgICAgaGVpZ2h0OiAx
MnB4OwogICAgIG1hcmdpbi10b3A6IDRweDsKIH0KIAotLnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBo
LmxheW91dCA+IC5ncmFwaC1yb3cgPiAudGltZWxpbmUtcmVjb3JkLWJhciA+IC5zZWdtZW50IHsK
Ky50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgtcm93ID4g
LnRpbWVsaW5lLXJlY29yZC1iYXIgPiAuc2VnbWVudCB7CiAgICAgYm9yZGVyLXJhZGl1czogMnB4
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCmluZGV4
IGU5ODAzMGEzNjEzLi42NDJkMDBiZThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVs
aW5lT3ZlcnZpZXdHcmFwaC5qcwpAQCAtMjksMTIgKzI5LDE1IEBAIFdJLkxheW91dFRpbWVsaW5l
T3ZlcnZpZXdHcmFwaCA9IGNsYXNzIExheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRz
IFdJLlRpCiAgICAgewogICAgICAgICBzdXBlcih0aW1lbGluZU92ZXJ2aWV3KTsKIAotICAgICAg
ICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibGF5b3V0Iik7CisgICAgICAgIHRoaXMuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJsYXlvdXQtb3ZlcnZpZXciKTsKIAogICAgICAgICB0aGlzLl9s
YXlvdXRUaW1lbGluZSA9IHRpbWVsaW5lOwogICAgICAgICB0aGlzLl9sYXlvdXRUaW1lbGluZS5h
ZGRFdmVudExpc3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlY29yZEFkZGVkLCB0aGlzLl9sYXlv
dXRUaW1lbGluZVJlY29yZEFkZGVkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLnJlc2V0KCk7CisK
KyAgICAgICAgZm9yIChsZXQgcmVjb3JkIG9mIHRoaXMuX2xheW91dFRpbWVsaW5lLnJlY29yZHMp
CisgICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAgICAg
Ly8gUHVibGljCkBAIC0xMTgsMTQgKzEyMSwxOSBAQCBXSS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3
R3JhcGggPSBjbGFzcyBMYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS5UaQog
CiAgICAgX2xheW91dFRpbWVsaW5lUmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewotICAgICAgICB2
YXIgbGF5b3V0VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgbGV0
IGxheW91dFRpbWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGxheW91dFRpbWVsaW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuTGF5b3V0VGltZWxp
bmVSZWNvcmQpOwogCisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQobGF5b3V0VGltZWxpbmVS
ZWNvcmQpOworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBfcHJv
Y2Vzc1JlY29yZChsYXlvdXRUaW1lbGluZVJlY29yZCkKKyAgICB7CiAgICAgICAgIGlmIChsYXlv
dXRUaW1lbGluZVJlY29yZC5ldmVudFR5cGUgPT09IFdJLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2
ZW50VHlwZS5QYWludCB8fCBsYXlvdXRUaW1lbGluZVJlY29yZC5ldmVudFR5cGUgPT09IFdJLkxh
eW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Db21wb3NpdGUpCiAgICAgICAgICAgICB0aGlz
Ll90aW1lbGluZVBhaW50UmVjb3JkUm93LnJlY29yZHMucHVzaChsYXlvdXRUaW1lbGluZVJlY29y
ZCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lTGF5b3V0UmVjb3Jk
Um93LnJlY29yZHMucHVzaChsYXlvdXRUaW1lbGluZVJlY29yZCk7Ci0KLSAgICAgICAgdGhpcy5u
ZWVkc0xheW91dCgpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMKaW5k
ZXggYzExNzI0MGNjOTEuLjhmMzc2MTM1NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3
LmpzCkBAIC05OCw2ICs5OCw5IEBAIFdJLkxheW91dFRpbWVsaW5lVmlldyA9IGNsYXNzIExheW91
dFRpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICB0aW1lbGluZS5h
ZGRFdmVudExpc3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlY29yZEFkZGVkLCB0aGlzLl9sYXlv
dXRUaW1lbGluZVJlY29yZEFkZGVkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9wZW5kaW5nUmVj
b3JkcyA9IFtdOworCisgICAgICAgIGZvciAobGV0IHJlY29yZCBvZiB0aW1lbGluZS5yZWNvcmRz
KQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAg
IC8vIFB1YmxpYwpAQCAtMjMxLDE2ICsyMzQsMjEgQEAgV0kuTGF5b3V0VGltZWxpbmVWaWV3ID0g
Y2xhc3MgTGF5b3V0VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAKICAgICBf
bGF5b3V0VGltZWxpbmVSZWNvcmRBZGRlZChldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBsYXlv
dXRUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOworICAgICAgICBsZXQgbGF5b3V0
VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAgICAgICAgY29uc29sZS5hc3Nl
cnQobGF5b3V0VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5MYXlvdXRUaW1lbGluZVJlY29y
ZCk7CiAKKyAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChsYXlvdXRUaW1lbGluZVJlY29yZCk7
CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF9wcm9jZXNzUmVj
b3JkKGxheW91dFRpbWVsaW5lUmVjb3JkKQorICAgIHsKICAgICAgICAgLy8gT25seSBhZGQgdG9w
LWxldmVsIHJlY29yZHMsIHRvIGF2b2lkIHByb2Nlc3NpbmcgY2hpbGQgcmVjb3JkcyBtdWx0aXBs
ZSB0aW1lcy4KICAgICAgICAgaWYgKGxheW91dFRpbWVsaW5lUmVjb3JkLnBhcmVudCBpbnN0YW5j
ZW9mIFdJLkxheW91dFRpbWVsaW5lUmVjb3JkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gobGF5b3V0VGltZWxpbmVSZWNvcmQpOwotCi0g
ICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKICAgICB9CiAKICAgICBfdXBkYXRlSGlnaGxpZ2h0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L01lZGlhVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTWVkaWFUaW1lbGluZVZpZXcuanMKaW5kZXggM2I0MDJkY2Q1ZjguLmY2YWQzNjE2
YTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9NZWRpYVRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NZWRpYVRpbWVsaW5lVmlldy5qcwpAQCAtNzksNiArNzksOSBAQCBXSS5N
ZWRpYVRpbWVsaW5lVmlldyA9IGNsYXNzIE1lZGlhVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGlt
ZWxpbmVWaWV3CiAgICAgICAgIHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxpbmUu
RXZlbnQuUmVjb3JkQWRkZWQsIHRoaXMuX2hhbmRsZVJlY29yZEFkZGVkLCB0aGlzKTsKIAogICAg
ICAgICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtdOworCisgICAgICAgIGZvciAobGV0IHJlY29y
ZCBvZiB0aW1lbGluZS5yZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChy
ZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMTk0LDExICsxOTcsMTYgQEAgV0ku
TWVkaWFUaW1lbGluZVZpZXcgPSBjbGFzcyBNZWRpYVRpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRp
bWVsaW5lVmlldwogICAgICAgICBsZXQgcmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHJlY29yZCBpbnN0YW5jZW9mIFdJLk1lZGlhVGltZWxpbmVSZWNv
cmQpOwogCi0gICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gocmVjb3JkKTsKKyAgICAg
ICAgdGhpcy5fcHJvY2Vzc1JlY29yZChtZWRpYVRpbWVsaW5lUmVjb3JkKTsKIAogICAgICAgICB0
aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCisgICAgX3Byb2Nlc3NSZWNvcmQobWVkaWFUaW1l
bGluZVJlY29yZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gobWVk
aWFUaW1lbGluZVJlY29yZCk7CisgICAgfQorCiAgICAgX2hhbmRsZVNlbGVjdGlvblBhdGhDb21w
b25lbnRTaWJsaW5nU2VsZWN0ZWQoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgcGF0aENvbXBv
bmVudCA9IGV2ZW50LmRhdGEucGF0aENvbXBvbmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFw
aC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRp
bWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwppbmRleCBjMTg0Y2RmNjRhZC4uNDI0ZjM1OGFhNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9y
eVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKQEAgLTUyLDYg
KzUyLDExIEBAIFdJLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE1lbW9yeVRp
bWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLlRpCiAgICAgICAgIHRoaXMuX21lbW9yeVBy
ZXNzdXJlTWFya2VyRWxlbWVudHMgPSBbXTsKIAogICAgICAgICB0aGlzLnJlc2V0KCk7CisKKyAg
ICAgICAgaWYgKHRoaXMuX21lbW9yeVRpbWVsaW5lLnJlY29yZHMubGVuZ3RoKSB7CisgICAgICAg
ICAgICBmb3IgKGxldCByZWNvcmQgb2YgdGhpcy5fbWVtb3J5VGltZWxpbmUucmVjb3JkcykKKyAg
ICAgICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTI0NSw2ICsyNTAsMTMgQEAgV0kuTWVtb3J5VGlt
ZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoIGV4
dGVuZHMgV0kuVGkKICAgICB7CiAgICAgICAgIGxldCBtZW1vcnlUaW1lbGluZVJlY29yZCA9IGV2
ZW50LmRhdGEucmVjb3JkOwogCisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQobWVtb3J5VGlt
ZWxpbmVSZWNvcmQpOworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAg
ICBfcHJvY2Vzc1JlY29yZChtZW1vcnlUaW1lbGluZVJlY29yZCkKKyAgICB7CiAgICAgICAgIHRo
aXMuX21heFNpemUgPSBNYXRoLm1heCh0aGlzLl9tYXhTaXplLCBtZW1vcnlUaW1lbGluZVJlY29y
ZC50b3RhbFNpemUpOwogCiAgICAgICAgIGlmICghdGhpcy5fZGlkSW5pdGlhbGl6ZUNhdGVnb3Jp
ZXMpIHsKQEAgLTI1NCw4ICsyNjYsNiBAQCBXSS5NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGgg
PSBjbGFzcyBNZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS5UaQogICAgICAg
ICAgICAgICAgIHR5cGVzLnB1c2goY2F0ZWdvcnkudHlwZSk7CiAgICAgICAgICAgICB0aGlzLl9j
aGFydC5pbml0aWFsaXplU2VjdGlvbnModHlwZXMpOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhp
cy5uZWVkc0xheW91dCgpOwogICAgIH0KIAogICAgIF9tZW1vcnlUaW1lbGluZU1lbW9yeVByZXNz
dXJlRXZlbnRBZGRlZChldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lVmlldy5qcwppbmRleCA0
NDJiN2RhN2QyNS4uNTE3Mjc3MGY1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZVZpZXcuanMK
QEAgLTk2LDYgKzk2LDkgQEAgV0kuTWVtb3J5VGltZWxpbmVWaWV3ID0gY2xhc3MgTWVtb3J5VGlt
ZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAgICAgICAgIHRpbWVsaW5lLmFkZEV2
ZW50TGlzdGVuZXIoV0kuVGltZWxpbmUuRXZlbnQuUmVjb3JkQWRkZWQsIHRoaXMuX21lbW9yeVRp
bWVsaW5lUmVjb3JkQWRkZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9oYW5kbGVHcmFwaE1vdXNlTW92ZS5iaW5kKHRo
aXMpKTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmQgb2YgdGltZWxpbmUucmVjb3JkcykKKyAg
ICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVjb3JkKTsKICAgICB9CiAKICAgICAvLyBT
dGF0aWMKQEAgLTQ1MiwxMiArNDU1LDE3IEBAIFdJLk1lbW9yeVRpbWVsaW5lVmlldyA9IGNsYXNz
IE1lbW9yeVRpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICBsZXQg
bWVtb3J5VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAgICAgICAgY29uc29s
ZS5hc3NlcnQobWVtb3J5VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5NZW1vcnlUaW1lbGlu
ZVJlY29yZCk7CiAKLSAgICAgICAgaWYgKCF0aGlzLl9kaWRJbml0aWFsaXplQ2F0ZWdvcmllcykK
LSAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVDYXRlZ29yeVZpZXdzKG1lbW9yeVRpbWVsaW5l
UmVjb3JkKTsKLQotICAgICAgICB0aGlzLl9tYXhTaXplID0gTWF0aC5tYXgodGhpcy5fbWF4U2l6
ZSwgbWVtb3J5VGltZWxpbmVSZWNvcmQudG90YWxTaXplKTsKKyAgICAgICAgdGhpcy5fcHJvY2Vz
c1JlY29yZChtZW1vcnlUaW1lbGluZVJlY29yZCk7CiAKICAgICAgICAgaWYgKG1lbW9yeVRpbWVs
aW5lUmVjb3JkLnN0YXJ0VGltZSA+PSB0aGlzLnN0YXJ0VGltZSAmJiBtZW1vcnlUaW1lbGluZVJl
Y29yZC5lbmRUaW1lIDw9IHRoaXMuZW5kVGltZSkKICAgICAgICAgICAgIHRoaXMubmVlZHNMYXlv
dXQoKTsKICAgICB9CisKKyAgICBfcHJvY2Vzc1JlY29yZChtZW1vcnlUaW1lbGluZVJlY29yZCkK
KyAgICB7CisgICAgICAgIGlmICghdGhpcy5fZGlkSW5pdGlhbGl6ZUNhdGVnb3JpZXMpCisgICAg
ICAgICAgICB0aGlzLl9pbml0aWFsaXplQ2F0ZWdvcnlWaWV3cyhtZW1vcnlUaW1lbGluZVJlY29y
ZCk7CisKKyAgICAgICAgdGhpcy5fbWF4U2l6ZSA9IE1hdGgubWF4KHRoaXMuX21heFNpemUsIG1l
bW9yeVRpbWVsaW5lUmVjb3JkLnRvdGFsU2l6ZSk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZU92
ZXJ2aWV3R3JhcGguanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoLmpzCmluZGV4IDc0ZDk0YWIwZjMzLi4zMjgz
ZjkzMmUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBo
LmpzCkBAIC0zNiw2ICszNiw5IEBAIFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBj
bGFzcyBOZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuCiAgICAgICAgIHRp
bWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxpbmUuRXZlbnQuVGltZXNVcGRhdGVkLCB0
aGlzLm5lZWRzTGF5b3V0LCB0aGlzKTsKIAogICAgICAgICB0aGlzLnJlc2V0KCk7CisKKyAgICAg
ICAgZm9yIChsZXQgcmVjb3JkIG9mIHRpbWVsaW5lLnJlY29yZHMpCisgICAgICAgICAgICB0aGlz
Ll9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC00Nywx
MiArNTAsMTIgQEAgV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE5ldHdv
cmtUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS4KICAgICAgICAgdGhpcy5fbmV4dER1
bXBSb3cgPSAwOwogICAgICAgICB0aGlzLl90aW1lbGluZVJlY29yZEdyaWRSb3dzID0gW107CiAK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBXSS5OZXR3b3JrVGltZWxpbmVPdmVydmlld0dy
YXBoLk1heGltdW1Sb3dDb3VudDsgKytpKQorICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IFdJ
Lk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGguTWF4aW11bVJvd0NvdW50OyArK2kpCiAgICAg
ICAgICAgICB0aGlzLl90aW1lbGluZVJlY29yZEdyaWRSb3dzLnB1c2goW10pOwogCiAgICAgICAg
IHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAgICAgIGZvciAodmFyIHJvd1Jl
Y29yZHMgb2YgdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlkUm93cykgeworICAgICAgICBmb3IgKGxl
dCByb3dSZWNvcmRzIG9mIHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3MpIHsKICAgICAgICAg
ICAgIHJvd1JlY29yZHMuX19lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CiAgICAgICAgICAgICByb3dSZWNvcmRzLl9fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJncmFwaC1y
b3ciKTsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChyb3dSZWNvcmRzLl9f
ZWxlbWVudCk7CkBAIC0xMDYsMjEgKzEwOSwyNCBAQCBXSS5OZXR3b3JrVGltZWxpbmVPdmVydmll
d0dyYXBoID0gY2xhc3MgTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLgog
CiAgICAgX25ldHdvcmtUaW1lbGluZVJlY29yZEFkZGVkKGV2ZW50KQogICAgIHsKLSAgICAgICAg
dmFyIHJlc291cmNlVGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAg
bGV0IHJlc291cmNlVGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQocmVzb3VyY2VUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLlJlc291
cmNlVGltZWxpbmVSZWNvcmQpOwogCi0gICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVCeVN0YXJ0VGlt
ZShhLCBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYS5zdGFydFRpbWUgLSBiLnN0
YXJ0VGltZTsKLSAgICAgICAgfQorICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlc291cmNl
VGltZWxpbmVSZWNvcmQpOwogCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisK
KyAgICBfcHJvY2Vzc1JlY29yZChyZXNvdXJjZVRpbWVsaW5lUmVjb3JkKQorICAgIHsKKyAgICAg
ICAgbGV0IGNvbXBhcmVCeVN0YXJ0VGltZSA9IChhLCBiKSA9PiBhLnN0YXJ0VGltZSAtIGIuc3Rh
cnRUaW1lOwogICAgICAgICBsZXQgbWluaW11bUJhclBhZGRpbmdUaW1lID0gV0kuVGltZWxpbmVP
dmVydmlldy5NaW5pbXVtRHVyYXRpb25QZXJQaXhlbCAqIChXSS5UaW1lbGluZVJlY29yZEJhci5N
aW5pbXVtV2lkdGhQaXhlbHMgKyBXSS5UaW1lbGluZVJlY29yZEJhci5NaW5pbXVtTWFyZ2luUGl4
ZWxzKTsKIAogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIHJvdyB0aGF0IGhhcyByb29tIGFuZCBk
b2VzIG5vdCBvdmVybGFwIGEgcHJldmlvdXMgcmVjb3JkLgotICAgICAgICB2YXIgZm91bmRSb3dG
b3JSZWNvcmQgPSBmYWxzZTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl90aW1l
bGluZVJlY29yZEdyaWRSb3dzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcm93UmVj
b3JkcyA9IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3NbaV07Ci0gICAgICAgICAgICB2YXIg
bGFzdFJlY29yZCA9IHJvd1JlY29yZHMubGFzdFZhbHVlOworICAgICAgICBsZXQgZm91bmRSb3dG
b3JSZWNvcmQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90aW1l
bGluZVJlY29yZEdyaWRSb3dzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgcm93UmVj
b3JkcyA9IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3NbaV07CisgICAgICAgICAgICBsZXQg
bGFzdFJlY29yZCA9IHJvd1JlY29yZHMubGFzdFZhbHVlOwogCiAgICAgICAgICAgICBpZiAoIWxh
c3RSZWNvcmQgfHwgbGFzdFJlY29yZC5lbmRUaW1lICsgbWluaW11bUJhclBhZGRpbmdUaW1lIDw9
IHJlc291cmNlVGltZWxpbmVSZWNvcmQuc3RhcnRUaW1lKSB7CiAgICAgICAgICAgICAgICAgaW5z
ZXJ0T2JqZWN0SW50b1NvcnRlZEFycmF5KHJlc291cmNlVGltZWxpbmVSZWNvcmQsIHJvd1JlY29y
ZHMsIGNvbXBhcmVCeVN0YXJ0VGltZSk7CkBAIC0xMzIsOSArMTM4LDkgQEAgV0kuTmV0d29ya1Rp
bWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGgg
ZXh0ZW5kcyBXSS4KIAogICAgICAgICBpZiAoIWZvdW5kUm93Rm9yUmVjb3JkKSB7CiAgICAgICAg
ICAgICAvLyBUcnkgdG8gZmluZCBhIHJvdyB0aGF0IGRvZXMgbm90IG92ZXJsYXAgYSBwcmV2aW91
cyByZWNvcmQncyBhY3RpdmUgdGltZSwgYnV0IGl0IGNhbiBvdmVybGFwIHRoZSBpbmFjdGl2ZSB0
aW1lLgotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl90aW1lbGluZVJlY29y
ZEdyaWRSb3dzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJvd1JlY29yZHMg
PSB0aGlzLl90aW1lbGluZVJlY29yZEdyaWRSb3dzW2ldOwotICAgICAgICAgICAgICAgIHZhciBs
YXN0UmVjb3JkID0gcm93UmVjb3Jkcy5sYXN0VmFsdWU7CisgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3MubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgcm93UmVjb3JkcyA9IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJv
d3NbaV07CisgICAgICAgICAgICAgICAgbGV0IGxhc3RSZWNvcmQgPSByb3dSZWNvcmRzLmxhc3RW
YWx1ZTsKICAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0UmVjb3JkKTsKIAogICAg
ICAgICAgICAgICAgIGlmIChsYXN0UmVjb3JkLmFjdGl2ZVN0YXJ0VGltZSArIG1pbmltdW1CYXJQ
YWRkaW5nVGltZSA8PSByZXNvdXJjZVRpbWVsaW5lUmVjb3JkLnN0YXJ0VGltZSkgewpAQCAtMTUy
LDggKzE1OCw2IEBAIFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBjbGFzcyBOZXR3
b3JrVGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuCiAgICAgICAgICAgICAgICAgdGhp
cy5fbmV4dER1bXBSb3cgPSAwOwogICAgICAgICAgICAgaW5zZXJ0T2JqZWN0SW50b1NvcnRlZEFy
cmF5KHJlc291cmNlVGltZWxpbmVSZWNvcmQsIHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3Nb
dGhpcy5fbmV4dER1bXBSb3crK10sIGNvbXBhcmVCeVN0YXJ0VGltZSk7CiAgICAgICAgIH0KLQot
ICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmll
dy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtU
aW1lbGluZVZpZXcuanMKaW5kZXggZjY1YTQ5NWNmYjMuLjVhZWI1MDRlM2MyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxp
bmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L05ldHdvcmtUaW1lbGluZVZpZXcuanMKQEAgLTEzNiw2ICsxMzYsOSBAQCBXSS5OZXR3b3JrVGlt
ZWxpbmVWaWV3ID0gY2xhc3MgTmV0d29ya1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5l
VmlldwogCiAgICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzID0gW107CiAgICAgICAgIHRoaXMu
X3Jlc291cmNlRGF0YUdyaWROb2RlTWFwID0gbmV3IE1hcDsKKworICAgICAgICBmb3IgKGxldCBy
ZWNvcmQgb2YgdGltZWxpbmUucmVjb3JkcykKKyAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNv
cmQocmVjb3JkKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTI2NywxMSArMjcwLDE2IEBA
IFdJLk5ldHdvcmtUaW1lbGluZVZpZXcgPSBjbGFzcyBOZXR3b3JrVGltZWxpbmVWaWV3IGV4dGVu
ZHMgV0kuVGltZWxpbmVWaWV3CiAKICAgICBfbmV0d29ya1RpbWVsaW5lUmVjb3JkQWRkZWQoZXZl
bnQpCiAgICAgewotICAgICAgICB2YXIgcmVzb3VyY2VUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRh
dGEucmVjb3JkOworICAgICAgICBsZXQgcmVzb3VyY2VUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRh
dGEucmVjb3JkOwogICAgICAgICBjb25zb2xlLmFzc2VydChyZXNvdXJjZVRpbWVsaW5lUmVjb3Jk
IGluc3RhbmNlb2YgV0kuUmVzb3VyY2VUaW1lbGluZVJlY29yZCk7CiAKLSAgICAgICAgdGhpcy5f
cGVuZGluZ1JlY29yZHMucHVzaChyZXNvdXJjZVRpbWVsaW5lUmVjb3JkKTsKKyAgICAgICAgdGhp
cy5fcHJvY2Vzc1JlY29yZChyZXNvdXJjZVRpbWVsaW5lUmVjb3JkKTsKIAogICAgICAgICB0aGlz
Lm5lZWRzTGF5b3V0KCk7CiAgICAgfQorCisgICAgX3Byb2Nlc3NSZWNvcmQocmVzb3VyY2VUaW1l
bGluZVJlY29yZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gocmVz
b3VyY2VUaW1lbGluZVJlY29yZCk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5n
RnJhbWVUaW1lbGluZVZpZXcuanMKaW5kZXggNjhlMGQwMmZjNDUuLjI5ZGVhZDgyMDJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZW5kZXJp
bmdGcmFtZVRpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcwpAQCAtOTAsNiArOTAs
OSBAQCBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyA9IGNsYXNzIFJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZQogICAgICAgICB0aW1lbGluZS5hZGRFdmVudExp
c3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlY29yZEFkZGVkLCB0aGlzLl9yZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lUmVjb3JkQWRkZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3BlbmRpbmdSZWNv
cmRzID0gW107CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkIG9mIHRpbWVsaW5lLnJlY29yZHMp
CisgICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAgICAg
c3RhdGljIGRpc3BsYXlOYW1lRm9yRHVyYXRpb25GaWx0ZXIoZmlsdGVyKQpAQCAtMjc3LDE1ICsy
ODAsMjAgQEAgV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcgPSBjbGFzcyBSZW5kZXJpbmdG
cmFtZVRpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWUKIAogICAgIF9yZW5kZXJpbmdGcmFtZVRp
bWVsaW5lUmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgcmVuZGVyaW5nRnJh
bWVUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOworICAgICAgICBsZXQgcmVuZGVy
aW5nRnJhbWVUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOwogICAgICAgICBjb25z
b2xlLmFzc2VydChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuUmVu
ZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlbmRl
cmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuY2hpbGRyZW4ubGVuZ3RoLCAiTWlzc2luZyBjaGlsZCBy
ZWNvcmRzIGZvciByZW5kZXJpbmcgZnJhbWUuIik7CiAKLSAgICAgICAgdGhpcy5fcGVuZGluZ1Jl
Y29yZHMucHVzaChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKTsKKyAgICAgICAgdGhpcy5f
cHJvY2Vzc1JlY29yZChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKTsKIAogICAgICAgICB0
aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCisgICAgX3Byb2Nlc3NSZWNvcmQocmVuZGVyaW5n
RnJhbWVUaW1lbGluZVJlY29yZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRz
LnB1c2gocmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCk7CisgICAgfQorCiAgICAgX3Njb3Bl
QmFyU2VsZWN0aW9uRGlkQ2hhbmdlKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmZp
bHRlckRpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcu
anMKaW5kZXggODhjMzkyYzAxNTguLjY5YmMxYWU3YjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njcmlw
dERldGFpbHNUaW1lbGluZVZpZXcuanMKQEAgLTg3LDYgKzg3LDkgQEAgV0kuU2NyaXB0RGV0YWls
c1RpbWVsaW5lVmlldyA9IGNsYXNzIFNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcgZXh0ZW5kcyBX
SS5UaW1lbGkKICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UaW1lbGluZS5F
dmVudC5SZWZyZXNoZWQsIHRoaXMuX3NjcmlwdFRpbWVsaW5lUmVjb3JkUmVmcmVzaGVkLCB0aGlz
KTsKIAogICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtdOworCisgICAgICAgIGZvciAo
bGV0IHJlY29yZCBvZiB0aW1lbGluZS5yZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vz
c1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMjI0LDEyICsyMjcs
MTcgQEAgV0kuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldyA9IGNsYXNzIFNjcmlwdERldGFpbHNU
aW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGkKIAogICAgIF9zY3JpcHRUaW1lbGluZVJlY29y
ZEFkZGVkKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdFRpbWVsaW5lUmVjb3JkID0g
ZXZlbnQuZGF0YS5yZWNvcmQ7CisgICAgICAgIGxldCBzY3JpcHRUaW1lbGluZVJlY29yZCA9IGV2
ZW50LmRhdGEucmVjb3JkOwogICAgICAgICBjb25zb2xlLmFzc2VydChzY3JpcHRUaW1lbGluZVJl
Y29yZCBpbnN0YW5jZW9mIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkKTsKIAorICAgICAgICB0aGlz
Ll9wcm9jZXNzUmVjb3JkKHNjcmlwdFRpbWVsaW5lUmVjb3JkKTsKKworICAgICAgICB0aGlzLm5l
ZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgX3Byb2Nlc3NSZWNvcmQoc2NyaXB0VGltZWxpbmVS
ZWNvcmQpCisgICAgewogICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNoKHNjcmlwdFRp
bWVsaW5lUmVjb3JkKTsKLQotICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCiAg
ICAgX3NjcmlwdFRpbWVsaW5lUmVjb3JkUmVmcmVzaGVkKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3Zl
cnZpZXcuanMKaW5kZXggNTc1MzZiNzRkODkuLmFhNmEzYTQ2M2RhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
T3ZlcnZpZXcuanMKQEAgLTExNiwxMCArMTE2LDI4IEBAIFdJLlRpbWVsaW5lT3ZlcnZpZXcgPSBj
bGFzcyBUaW1lbGluZU92ZXJ2aWV3IGV4dGVuZHMgV0kuVmlldwogCiAgICAgICAgIHRoaXMuX3Zp
ZXdNb2RlRGlkQ2hhbmdlKCk7CiAKKyAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ0ltcG9ydGVkLCB0aGlz
Ll9yZWNvcmRpbmdJbXBvcnRlZCwgdGhpcyk7CiAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdJLlRpbWVsaW5lTWFuYWdlci5FdmVudC5DYXB0dXJpbmdTdGFydGVk
LCB0aGlzLl9jYXB0dXJpbmdTdGFydGVkLCB0aGlzKTsKICAgICAgICAgV0kudGltZWxpbmVNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LkNhcHR1cmluZ1N0
b3BwZWQsIHRoaXMuX2NhcHR1cmluZ1N0b3BwZWQsIHRoaXMpOwogICAgIH0KIAorICAgIC8vIElt
cG9ydCAvIEV4cG9ydAorCisgICAgZXhwb3J0RGF0YSgpCisgICAgeworICAgICAgICBsZXQganNv
biA9IHsKKyAgICAgICAgICAgIHNlY29uZHNQZXJQaXhlbDogdGhpcy5zZWNvbmRzUGVyUGl4ZWws
CisgICAgICAgICAgICBzY3JvbGxTdGFydFRpbWU6IHRoaXMuc2Nyb2xsU3RhcnRUaW1lLAorICAg
ICAgICAgICAgc2VsZWN0aW9uU3RhcnRUaW1lOiB0aGlzLnNlbGVjdGlvblN0YXJ0VGltZSwKKyAg
ICAgICAgICAgIHNlbGVjdGlvbkR1cmF0aW9uOiB0aGlzLnNlbGVjdGlvbkR1cmF0aW9uLAorICAg
ICAgICB9OworCisgICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZFRpbWVsaW5lKQorICAgICAgICAg
ICAganNvbi5zZWxlY3RlZFRpbWVsaW5lVHlwZSA9IHRoaXMuX3NlbGVjdGVkVGltZWxpbmUudHlw
ZTsKKworICAgICAgICByZXR1cm4ganNvbjsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAg
IGdldCBzZWxlY3RlZFRpbWVsaW5lKCkKQEAgLTY1Nyw2ICs2NzUsOCBAQCBXSS5UaW1lbGluZU92
ZXJ2aWV3ID0gY2xhc3MgVGltZWxpbmVPdmVydmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAg
ICAgIG92ZXJ2aWV3R3JhcGguaGlkZGVuKCk7CiAgICAgICAgICAgICB0cmVlRWxlbWVudC5oaWRk
ZW4gPSB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOwogICAg
IH0KIAogICAgIF9pbnN0cnVtZW50UmVtb3ZlZChldmVudCkKQEAgLTEwMTIsMTMgKzEwMzIsMzYg
QEAgV0kuVGltZWxpbmVPdmVydmlldyA9IGNsYXNzIFRpbWVsaW5lT3ZlcnZpZXcgZXh0ZW5kcyBX
SS5WaWV3CiAgICAgICAgIHRoaXMuX2VkaXRpbmdJbnN0cnVtZW50c0RpZENoYW5nZSgpOwogICAg
IH0KIAotICAgIF9jYXB0dXJpbmdTdGFydGVkKCkKKyAgICBfcmVjb3JkaW5nSW1wb3J0ZWQoZXZl
bnQpCisgICAgeworICAgICAgICBsZXQge292ZXJ2aWV3RGF0YX0gPSBldmVudC5kYXRhOworCisg
ICAgICAgIGlmIChvdmVydmlld0RhdGEuc2Vjb25kc1BlclBpeGVsICE9PSB1bmRlZmluZWQpCisg
ICAgICAgICAgICB0aGlzLnNlY29uZHNQZXJQaXhlbCA9IG92ZXJ2aWV3RGF0YS5zZWNvbmRzUGVy
UGl4ZWw7CisgICAgICAgIGlmIChvdmVydmlld0RhdGEuc2Nyb2xsU3RhcnRUaW1lICE9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICB0aGlzLnNjcm9sbFN0YXJ0VGltZSA9IG92ZXJ2aWV3RGF0YS5z
Y3JvbGxTdGFydFRpbWU7CisgICAgICAgIGlmIChvdmVydmlld0RhdGEuc2VsZWN0aW9uU3RhcnRU
aW1lICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblN0YXJ0VGltZSA9
IG92ZXJ2aWV3RGF0YS5zZWxlY3Rpb25TdGFydFRpbWU7CisgICAgICAgIGlmIChvdmVydmlld0Rh
dGEuc2VsZWN0aW9uRHVyYXRpb24gIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgaWYgKG92
ZXJ2aWV3RGF0YS5zZWxlY3Rpb25EdXJhdGlvbiA9PT0gTnVtYmVyLk1BWF9WQUxVRSkKKyAgICAg
ICAgICAgICAgICB0aGlzLl90aW1lbGluZVJ1bGVyLnNlbGVjdEVudGlyZVJhbmdlKCk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25EdXJhdGlvbiA9IG92
ZXJ2aWV3RGF0YS5zZWxlY3Rpb25EdXJhdGlvbjsKKyAgICAgICAgfQorICAgICAgICBpZiAob3Zl
cnZpZXdEYXRhLnNlbGVjdGVkVGltZWxpbmVUeXBlICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAg
ICAgIGxldCB0aW1lbGluZSA9IHRoaXMuX3JlY29yZGluZy50aW1lbGluZUZvclJlY29yZFR5cGUo
b3ZlcnZpZXdEYXRhLnNlbGVjdGVkVGltZWxpbmVUeXBlKTsKKyAgICAgICAgICAgIGlmICh0aW1l
bGluZSkKKyAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZWxpbmUgPSB0aW1lbGluZTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIF9jYXB0dXJpbmdTdGFydGVkKGV2ZW50KQogICAgIHsK
ICAgICAgICAgdGhpcy5fZWRpdEluc3RydW1lbnRzQnV0dG9uLmVuYWJsZWQgPSBmYWxzZTsKICAg
ICAgICAgdGhpcy5fc3RvcEVkaXRpbmdJbnN0cnVtZW50cygpOwogICAgIH0KIAotICAgIF9jYXB0
dXJpbmdTdG9wcGVkKCkKKyAgICBfY2FwdHVyaW5nU3RvcHBlZChldmVudCkKICAgICB7CiAgICAg
ICAgIHRoaXMuX2VkaXRJbnN0cnVtZW50c0J1dHRvbi5lbmFibGVkID0gdHJ1ZTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZVJlY29yZEJhci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZVJlY29yZEJhci5jc3MKaW5kZXggMGIzMGRhZTE4OGMuLmUxMWFmYmVhYjcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVJlY29yZEJhci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRCYXIuY3NzCkBAIC0xMTEsOCArMTExLDggQEAgYm9k
eVtkaXI9cnRsXSA6Zm9jdXMgLnNlbGVjdGVkIC50aW1lbGluZS1yZWNvcmQtYmFyLmhhcy1pbmFj
dGl2ZS1zZWdtZW50ID4gLnNlZ20KIH0KIAogCi0udGltZWxpbmUtcmVjb3JkLWJhci50aW1lbGlu
ZS1yZWNvcmQtdHlwZS1sYXlvdXQubGF5b3V0LXRpbWVsaW5lLXJlY29yZC1wYWludCA+IC5zZWdt
ZW50LAotLnRpbWVsaW5lLXJlY29yZC1iYXIudGltZWxpbmUtcmVjb3JkLXR5cGUtbGF5b3V0Lmxh
eW91dC10aW1lbGluZS1yZWNvcmQtY29tcG9zaXRlID4gLnNlZ21lbnQgeworLnRpbWVsaW5lLXJl
Y29yZC1iYXIudGltZWxpbmUtcmVjb3JkLXR5cGUtbGF5b3V0LnBhaW50ID4gLnNlZ21lbnQsCisu
dGltZWxpbmUtcmVjb3JkLWJhci50aW1lbGluZS1yZWNvcmQtdHlwZS1sYXlvdXQuY29tcG9zaXRl
ID4gLnNlZ21lbnQgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCg3NiwgNDklLCA2MCUpOwog
ICAgIGJvcmRlci1jb2xvcjogaHNsKDc5LCA0NSUsIDUxJSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qcwppbmRleCAyMzIyYjcyMTRhMy4uMjA4Yzc1
YmVkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5q
cwpAQCAtNjQsNiArNjQsMTggQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNs
YXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAgICAgICAg
IFdJLnNldHRpbmdzLnRpbWVsaW5lc0F1dG9TdG9wLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGlu
Zy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVUaW1lbGluZXNBdXRvU3RvcFNldHRpbmdDaGFu
Z2VkLCB0aGlzKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2V4cG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJleHBvcnQiLCBXSS5VSVN0
cmluZygiRXhwb3J0IiksICJJbWFnZXMvRXhwb3J0LnN2ZyIsIDE1LCAxNSk7CisgICAgICAgIHRo
aXMuX2V4cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2xUaXAgPSBXSS5VSVN0cmluZygiRXhw
b3J0ICglcykiKS5mb3JtYXQoV0kuc2F2ZUtleWJvYXJkU2hvcnRjdXQuZGlzcGxheU5hbWUpOwor
ICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHlsZSA9IFdJ
LkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKKyAgICAgICAgdGhpcy5f
ZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0kuTmF2aWdh
dGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkhpZ2g7CisgICAgICAgIHRoaXMuX2V4cG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgKCkgPT4geyB0aGlzLl9leHBvcnRUaW1lbGluZVJlY29yZGluZygp
OyB9KTsKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9
IGZhbHNlOworCisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0gbmV3
IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQiLCBXSS5VSVN0cmluZygiSW1wb3J0Iiks
ICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtLnRvb2xUaXAgPSBXSS5VSVN0cmluZygiSW1wb3J0Iik7CisgICAgICAg
IHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0dG9u
TmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OworICAgICAgICB0aGlzLl9pbXBvcnRC
dXR0b25OYXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25J
dGVtLkV2ZW50LkNsaWNrZWQsIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tl
ZCwgdGhpcyk7CisKICAgICAgICAgdGhpcy5fY2xlYXJUaW1lbGluZU5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJjbGVhci10aW1lbGluZSIsIFdJLlVJU3RyaW5n
KCJDbGVhciBUaW1lbGluZSAoJXMpIikuZm9ybWF0KFdJLmNsZWFyS2V5Ym9hcmRTaG9ydGN1dC5k
aXNwbGF5TmFtZSksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1UcmFzaC5zdmciLCAxNSwgMTUpOwog
ICAgICAgICB0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9y
aXR5ID0gV0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKICAgICAgICAg
dGhpcy5fY2xlYXJUaW1lbGluZU5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fY2xlYXJUaW1lbGluZSwgdGhp
cyk7CkBAIC0xMDksNiArMTIxLDkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9
IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAgICAg
ICAgIHRoaXMuX2luc3RydW1lbnRBZGRlZChpbnN0cnVtZW50KTsKIAogICAgICAgICB0aGlzLnNo
b3dPdmVydmlld1RpbWVsaW5lVmlldygpOworCisgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcu
aW1wb3J0ZWQpCisgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplSW1wb3J0ZWRSZWNvcmRpbmco
KTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTE2Nyw2ICsxODIsOCBAQCBXSS5UaW1lbGlu
ZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmll
dyBleHRlbmRzIFdJLgogICAgICAgICBpZiAodGhpcy5fYXV0b1N0b3BDaGVja2JveE5hdmlnYXRp
b25JdGVtKQogICAgICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5fYXV0b1N0b3BD
aGVja2JveE5hdmlnYXRpb25JdGVtKTsKICAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2gobmV3
IFdJLkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNo
KHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgbmF2aWdhdGlvbkl0
ZW1zLnB1c2godGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICBuYXZp
Z2F0aW9uSXRlbXMucHVzaCh0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0pOwogICAg
ICAgICByZXR1cm4gbmF2aWdhdGlvbkl0ZW1zOwogICAgIH0KQEAgLTE3OSwxMiArMTk2LDE4IEBA
IFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGlu
Z0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAKICAgICBnZXQgc3VwcG9ydHNTYXZlKCkKICAgICB7
CisgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcuY2FuRXhwb3J0KCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKwogICAgICAgICBsZXQgY3VycmVudENvbnRlbnRWaWV3ID0gdGhpcy5fdGlt
ZWxpbmVDb250ZW50QnJvd3Nlci5jdXJyZW50Q29udGVudFZpZXc7CiAgICAgICAgIHJldHVybiBj
dXJyZW50Q29udGVudFZpZXcgJiYgY3VycmVudENvbnRlbnRWaWV3LnN1cHBvcnRzU2F2ZTsKICAg
ICB9CiAKICAgICBnZXQgc2F2ZURhdGEoKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29y
ZGluZy5jYW5FeHBvcnQoKSkKKyAgICAgICAgICAgIHJldHVybiB7Y3VzdG9tU2F2ZUhhbmRsZXI6
ICgpID0+IHsgdGhpcy5fZXhwb3J0VGltZWxpbmVSZWNvcmRpbmcoKTsgfX07CisKICAgICAgICAg
bGV0IGN1cnJlbnRDb250ZW50VmlldyA9IHRoaXMuX3RpbWVsaW5lQ29udGVudEJyb3dzZXIuY3Vy
cmVudENvbnRlbnRWaWV3OwogICAgICAgICByZXR1cm4gY3VycmVudENvbnRlbnRWaWV3ICYmIGN1
cnJlbnRDb250ZW50Vmlldy5zYXZlRGF0YSB8fCBudWxsOwogICAgIH0KQEAgLTIwMCw3ICsyMjMs
OSBAQCBXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNv
cmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLgogCiAgICAgICAgIHRoaXMuX3RpbWVsaW5lT3Zl
cnZpZXcuc2hvd24oKTsKICAgICAgICAgdGhpcy5fdGltZWxpbmVDb250ZW50QnJvd3Nlci5zaG93
bigpOworCiAgICAgICAgIHRoaXMuX2NsZWFyVGltZWxpbmVOYXZpZ2F0aW9uSXRlbS5lbmFibGVk
ID0gIXRoaXMuX3JlY29yZGluZy5yZWFkb25seSAmJiAhaXNOYU4odGhpcy5fcmVjb3JkaW5nLnN0
YXJ0VGltZSk7CisgICAgICAgIHRoaXMuX2V4cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJs
ZWQgPSB0aGlzLl9yZWNvcmRpbmcuY2FuRXhwb3J0KCk7CiAKICAgICAgICAgdGhpcy5fY3VycmVu
dENvbnRlbnRWaWV3RGlkQ2hhbmdlKCk7CiAKQEAgLTQ5Nyw2ICs1MjIsNyBAQCBXSS5UaW1lbGlu
ZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmll
dyBleHRlbmRzIFdJLgogICAgICAgICBpZiAoIXRoaXMuX3VwZGF0aW5nKQogICAgICAgICAgICAg
dGhpcy5fc3RhcnRVcGRhdGluZ0N1cnJlbnRUaW1lKHN0YXJ0VGltZSk7CiAgICAgICAgIHRoaXMu
X2NsZWFyVGltZWxpbmVOYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gIXRoaXMuX3JlY29yZGluZy5y
ZWFkb25seTsKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxl
ZCA9IGZhbHNlOwogCiAgICAgICAgIC8vIEEgZGlzY29udGludWl0eSBvY2N1cnMgd2hlbiB0aGUg
cmVjb3JkaW5nIGlzIHN0b3BwZWQgYW5kIHJlc3VtZWQgYXQKICAgICAgICAgLy8gYSBmdXR1cmUg
dGltZS4gQ2FwdHVyaW5nIHN0YXJ0ZWQgc2lnbmFscyB0aGUgZW5kIG9mIHRoZSBjdXJyZW50CkBA
IC01MTgsNiArNTQ0LDE0IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFz
cyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAgICAgICAgICAgICB0
aGlzLl91cGRhdGVUaW1lbGluZVZpZXdUaW1lcyh0aGlzLmN1cnJlbnRUaW1lbGluZVZpZXcpOwog
CiAgICAgICAgIHRoaXMuX2Rpc2NvbnRpbnVpdHlTdGFydFRpbWUgPSBldmVudC5kYXRhLmVuZFRp
bWUgfHwgdGhpcy5fY3VycmVudFRpbWU7CisKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2
aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IHRoaXMuX3JlY29yZGluZy5jYW5FeHBvcnQoKTsKKyAgICB9
CisKKyAgICBfaW5pdGlhbGl6ZUltcG9ydGVkUmVjb3JkaW5nKCkKKyAgICB7CisgICAgICAgIGxl
dCB7c3RhcnRUaW1lLCBlbmRUaW1lfSA9IHRoaXMuX3JlY29yZGluZzsKKyAgICAgICAgdGhpcy5f
dXBkYXRlVGltZXMoc3RhcnRUaW1lLCBlbmRUaW1lLCBlbmRUaW1lKTsKICAgICB9CiAKICAgICBf
ZGVidWdnZXJQYXVzZWQoZXZlbnQpCkBAIC01NjIsNiArNTk2LDQxIEBAIFdJLlRpbWVsaW5lUmVj
b3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuCiAgICAgICAgIHRoaXMuX2F1dG9TdG9wQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbS5j
aGVja2VkID0gV0kuc2V0dGluZ3MudGltZWxpbmVzQXV0b1N0b3AudmFsdWU7CiAgICAgfQogCisg
ICAgX2V4cG9ydFRpbWVsaW5lUmVjb3JkaW5nKCkKKyAgICB7CisgICAgICAgIGxldCByZWNvcmRp
bmdEYXRhID0gdGhpcy5fcmVjb3JkaW5nLmV4cG9ydERhdGEoKTsKKyAgICAgICAgbGV0IG92ZXJ2
aWV3RGF0YSA9IHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcuZXhwb3J0RGF0YSgpOworICAgICAgICBp
ZiAoIXJlY29yZGluZ0RhdGEgfHwgIW92ZXJ2aWV3RGF0YSkgeworICAgICAgICAgICAgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmJlZXAoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGxldCBqc29uID0geworICAgICAgICAgICAgcmVjb3JkaW5nOiByZWNvcmRpbmdE
YXRhLAorICAgICAgICAgICAgb3ZlcnZpZXc6IG92ZXJ2aWV3RGF0YSwKKyAgICAgICAgfTsKKwor
ICAgICAgICBsZXQgZnJhbWVOYW1lID0gbnVsbDsKKyAgICAgICAgbGV0IG1haW5GcmFtZSA9IFdJ
Lm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZTsKKyAgICAgICAgaWYgKG1haW5GcmFtZSkKKyAgICAg
ICAgICAgIGZyYW1lTmFtZSA9IG1haW5GcmFtZS5tYWluUmVzb3VyY2UudXJsQ29tcG9uZW50cy5o
b3N0IHx8IG1haW5GcmFtZS5tYWluUmVzb3VyY2UuZGlzcGxheU5hbWU7CisKKyAgICAgICAgbGV0
IGZpbGVuYW1lID0gZnJhbWVOYW1lID8gYCR7ZnJhbWVOYW1lfS1yZWNvcmRpbmdgIDogV0kuVUlT
dHJpbmcoIlRpbWVsaW5lIFJlY29yZGluZyIpOworICAgICAgICBsZXQgdXJsID0gIndlYi1pbnNw
ZWN0b3I6Ly8vIiArIGVuY29kZVVSSShmaWxlbmFtZSkgKyAiLmpzb24iOworICAgICAgICBXSS5G
aWxlVXRpbGl0aWVzLnNhdmUoeworICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgY29udGVu
dDogSlNPTi5zdHJpbmdpZnkoanNvbiksCisgICAgICAgICAgICBmb3JjZVNhdmVBczogdHJ1ZSwK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xp
Y2tlZCgpCisgICAgeworICAgICAgICBXSS5GaWxlVXRpbGl0aWVzLmltcG9ydFRleHQoKHJlc3Vs
dCkgPT4geworICAgICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLmltcG9ydFJlY29yZGluZyhy
ZXN1bHQudGV4dCwgcmVzdWx0LmZpbGVuYW1lKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAg
X2NsZWFyVGltZWxpbmUoZXZlbnQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5n
LnJlYWRvbmx5KQpAQCAtNjY0LDYgKzczMyw3IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVu
dFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAg
ICAgICAgIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcucmVzZXQoKTsKICAgICAgICAgdGhpcy5fb3Zl
cnZpZXdUaW1lbGluZVZpZXcucmVzZXQoKTsKICAgICAgICAgdGhpcy5fY2xlYXJUaW1lbGluZU5h
dmlnYXRpb25JdGVtLmVuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9u
TmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZhbHNlOwogICAgIH0KIAogICAgIF9yZWNvcmRpbmdV
bmxvYWRlZChldmVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364697</attachid>
            <date>2019-03-14 15:11:06 -0700</date>
            <delta_ts>2019-03-14 17:43:41 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>r-1.patch</filename>
            <type>text/plain</type>
            <size>96780</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMTI4MzA3NDUwNS4uYjA0YjAyMDJjYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wMy0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lcyAtIEltcG9ydCAvIEV4cG9ydCBUaW1lbGluZSBS
ZWNvcmRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU3MDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMTg4OTIxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXJlY29yZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNvcmRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTktMDMt
MTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBOZXR3b3JrIC0gSEFSIEltcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY29yZGluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2UyYTA2NDdiMmEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
cmVjb3JkaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcwIEBACitUZXN0cyBmb3IgdGltZWxp
bmUgcmVjb3JkaW5nLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogVGltZWxpbmVSZWNvcmRp
bmcKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBUaW1lbGluZVJlY29yZGluZy5CYXNpYworLS0gTG9h
ZGVkCitQQVNTOiBUaW1lbGluZU1hbmFnZXIgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuCitQQVNT
OiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGNhcHR1cmluZy4KK1BBU1M6IFRpbWVs
aW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgcmVhZG9ubHkuCitQQVNTOiBUaW1lbGluZVJlY29y
ZGluZyBzaG91bGQgbm90IGJlIGltcG9ydGVkLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hv
dWxkIG5vdCBoYXZlIGEgc3RhcnRUaW1lLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxk
IG5vdCBoYXZlIGEgZW5kVGltZS4KKy0tIFN0YXJ0CitQQVNTOiBUaW1lbGluZU1hbmFnZXIgc2hv
dWxkIGJlIGNhcHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lTWFuYWdlciBhY3RpdmUgcmVjb3JkaW5n
IHNob3VsZCBub3QgaGF2ZSBjaGFuZ2VkLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxk
IGJlIGNhcHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgcmVh
ZG9ubHkuCistLSBSZWxvYWQKKy0tIFN0b3AKK1BBU1M6IFRpbWVsaW5lTWFuYWdlciBzaG91bGQg
bm90IGJlIGNhcHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUg
Y2FwdHVyaW5nLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSByZWFkb25s
eS4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgaW1wb3J0ZWQuCitQQVNT
OiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgaGF2ZSBhIHN0YXJ0VGltZS4KK1BBU1M6IFRpbWVs
aW5lUmVjb3JkaW5nIHNob3VsZCBoYXZlIGEgZW5kVGltZS4KKworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5leHBvcnREYXRhCitQQVNTOiBUaW1lbGlu
ZVJlY29yZGluZyBzaG91bGQgYmUgYWJsZSB0byBleHBvcnQuCitQQVNTOiBUaW1lbGluZVJlY29y
ZGluZyBzaG91bGQgYmUgYWJsZSB0byBwcm9kdWNlIGV4cG9ydCBkYXRhLgorUEFTUzogVGltZWxp
bmVSZWNvcmRpbmcgc2hvdWxkIGhhdmUgYXQgbGVhc3QgMTAgVGltZWxpbmUgUmVjb3Jkcy4KKy0t
IEV4cG9ydCBEYXRhCit7CisgICJkaXNwbGF5TmFtZSI6ICI8ZmlsdGVyZWQ+IiwKKyAgInN0YXJ0
VGltZSI6ICI8ZmlsdGVyZWQ+IiwKKyAgImVuZFRpbWUiOiAiPGZpbHRlcmVkPiIsCisgICJkaXNj
b250aW51aXRpZXMiOiBbXSwKKyAgImluc3RydW1lbnRUeXBlcyI6IFsKKyAgICAidGltZWxpbmUt
cmVjb3JkLXR5cGUtbmV0d29yayIsCisgICAgInRpbWVsaW5lLXJlY29yZC10eXBlLWxheW91dCIs
CisgICAgInRpbWVsaW5lLXJlY29yZC10eXBlLXNjcmlwdCIsCisgICAgInRpbWVsaW5lLXJlY29y
ZC10eXBlLWNwdSIsCisgICAgInRpbWVsaW5lLXJlY29yZC10eXBlLXJlbmRlcmluZy1mcmFtZSIK
KyAgXSwKKyAgInJlY29yZHMiOiAiPGZpbHRlcmVkPiIsCisgICJtYXJrZXJzIjogWworICAgIHsK
KyAgICAgICJ0aW1lIjogIjxmaWx0ZXJlZD4iLAorICAgICAgInR5cGUiOiAiZG9tLWNvbnRlbnQt
ZXZlbnQiCisgICAgfSwKKyAgICB7CisgICAgICAidGltZSI6ICI8ZmlsdGVyZWQ+IiwKKyAgICAg
ICJ0eXBlIjogImxvYWQtZXZlbnQiCisgICAgfQorICBdLAorICAibWVtb3J5UHJlc3N1cmVFdmVu
dHMiOiBbXSwKKyAgInNhbXBsZVN0YWNrVHJhY2VzIjogW10sCisgICJzYW1wbGVEdXJhdGlvbnMi
OiBbXQorfQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVGltZWxpbmVSZWNvcmRpbmcuaW1wb3J0
CitQQVNTOiBUaW1lbGluZU1hbmFnZXIgYWN0aXZlIHJlY29yZGluZyBpcyBub3QgdGhpcyBpbXBv
cnRlZCByZWNvcmRpbmcuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGNh
cHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSByZWFkb25seS4KK1BB
U1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSBpbXBvcnRlZC4KK1BBU1M6IFRpbWVsaW5l
UmVjb3JkaW5nIHNob3VsZCBoYXZlIGEgc3RhcnRUaW1lLgorUEFTUzogVGltZWxpbmVSZWNvcmRp
bmcgc2hvdWxkIGhhdmUgYSBlbmRUaW1lLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgaWRlbnRp
ZmllciBzaG91bGQgYmUgOTk5LgorLS0gRGlzcGxheSBOYW1lOgorSW1wb3J0ZWQgLSBuYW1lCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNv
cmRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNv
cmRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmRlMjU4
ZjEwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtcmVjb3JkaW5nLmh0bWwKQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiVGltZWxpbmVSZWNvcmRpbmciKTsKKworICAgIGxldCBleHBvcnREYXRhID0gbnVsbDsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRpbWVsaW5lUmVjb3Jk
aW5nLkJhc2ljIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJNYWtlIGEgYmFzaWMgVGltZWxpbmUg
cmVjb3JkaW5nLiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgcmVj
b3JkaW5nID0gV0kudGltZWxpbmVNYW5hZ2VyLmFjdGl2ZVJlY29yZGluZzsKKworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tIExvYWRlZCIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RGYWxzZShXSS50aW1lbGluZU1hbmFnZXIuaXNDYXB0dXJpbmcoKSwgIlRpbWVs
aW5lTWFuYWdlciBzaG91bGQgbm90IGJlIGNhcHR1cmluZy4iKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLmNhcHR1cmluZywgIlRpbWVsaW5lUmVjb3Jk
aW5nIHNob3VsZCBub3QgYmUgY2FwdHVyaW5nLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RGYWxzZShyZWNvcmRpbmcucmVhZG9ubHksICJUaW1lbGluZVJlY29yZGluZyBzaG91
bGQgbm90IGJlIHJlYWRvbmx5LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RG
YWxzZShyZWNvcmRpbmcuaW1wb3J0ZWQsICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJl
IGltcG9ydGVkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGlzTmFO
KHJlY29yZGluZy5zdGFydFRpbWUpLCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBoYXZl
IGEgc3RhcnRUaW1lLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGlz
TmFOKHJlY29yZGluZy5lbmRUaW1lKSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgaGF2
ZSBhIGVuZFRpbWUuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCItLSBTdGFy
dCIpOworICAgICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLnN0YXJ0Q2FwdHVyaW5nKCk7Cisg
ICAgICAgICAgICBhd2FpdCBXSS50aW1lbGluZU1hbmFnZXIuYXdhaXRFdmVudChXSS5UaW1lbGlu
ZU1hbmFnZXIuRXZlbnQuQ2FwdHVyaW5nU3RhcnRlZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRydWUoV0kudGltZWxpbmVNYW5hZ2VyLmlzQ2FwdHVyaW5nKCksICJUaW1lbGlu
ZU1hbmFnZXIgc2hvdWxkIGJlIGNhcHR1cmluZy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwoV0kudGltZWxpbmVNYW5hZ2VyLmFjdGl2ZVJlY29yZGluZywgcmVjb3Jk
aW5nLCAiVGltZWxpbmVNYW5hZ2VyIGFjdGl2ZSByZWNvcmRpbmcgc2hvdWxkIG5vdCBoYXZlIGNo
YW5nZWQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRydWUocmVjb3JkaW5n
LmNhcHR1cmluZywgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSBjYXB0dXJpbmcuIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHJlY29yZGluZy5yZWFkb25seSwg
IlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgcmVhZG9ubHkuIik7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCItLSBSZWxvYWQiKTsKKyAgICAgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOworICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQuVGVzdFBhZ2VEaWRMb2FkKTsK
KworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIi0tIFN0b3AiKTsKKyAgICAgICAgICAg
IFdJLnRpbWVsaW5lTWFuYWdlci5zdG9wQ2FwdHVyaW5nKCk7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEZhbHNlKFdJLnRpbWVsaW5lTWFuYWdlci5pc0NhcHR1cmluZygpLCAiVGlt
ZWxpbmVNYW5hZ2VyIHNob3VsZCBub3QgYmUgY2FwdHVyaW5nLiIpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RGYWxzZShyZWNvcmRpbmcuY2FwdHVyaW5nLCAiVGltZWxpbmVSZWNv
cmRpbmcgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEZhbHNlKHJlY29yZGluZy5yZWFkb25seSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNo
b3VsZCBub3QgYmUgcmVhZG9ubHkuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEZhbHNlKHJlY29yZGluZy5pbXBvcnRlZCwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3Qg
YmUgaW1wb3J0ZWQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWlz
TmFOKHJlY29yZGluZy5zdGFydFRpbWUpLCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGhhdmUg
YSBzdGFydFRpbWUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWlz
TmFOKHJlY29yZGluZy5lbmRUaW1lKSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBoYXZlIGEg
ZW5kVGltZS4iKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLmV4cG9ydERhdGEi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgZm9yIGEgcmVjb3JkaW5nIGV4cG9ydC4iLAor
ICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IHJlY29yZGluZyA9IFdJLnRp
bWVsaW5lTWFuYWdlci5hY3RpdmVSZWNvcmRpbmc7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydCghaXNOYU4ocmVjb3JkaW5nLnN0YXJ0VGltZSksICJGQUlMOiBQcmV2aW91cyB0ZXN0
IGxvYWRpbmcgYSByZWNvcmRpbmcgZmFpbGVkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoIWlzTmFOKHJlY29yZGluZy5lbmRUaW1lKSwgIkZBSUw6IFByZXZpb3VzIHRlc3Qg
bG9hZGluZyBhIHJlY29yZGluZyBmYWlsZWQuIik7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VHJ1ZShyZWNvcmRpbmcuY2FuRXhwb3J0KCksICJUaW1lbGluZVJlY29yZGluZyBz
aG91bGQgYmUgYWJsZSB0byBleHBvcnQuIik7CisKKyAgICAgICAgICAgIGV4cG9ydERhdGEgPSBy
ZWNvcmRpbmcuZXhwb3J0RGF0YSgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGV4cG9ydERhdGEsICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgYmUgYWJsZSB0byBwcm9k
dWNlIGV4cG9ydCBkYXRhLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGV4cG9ydERhdGEucmVjb3Jkcy5sZW5ndGggPiAxMCwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3Vs
ZCBoYXZlIGF0IGxlYXN0IDEwIFRpbWVsaW5lIFJlY29yZHMuIik7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCItLSBFeHBvcnQgRGF0YSIpOworICAgICAgICAgICAgbGV0IGZpbHRl
cktleXMgPSBuZXcgU2V0KFsic3RhcnRUaW1lIiwgImVuZFRpbWUiLCAidGltZSIsICJyZWNvcmRz
IiwgImRpc3BsYXlOYW1lIl0pOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5qc29uKGV4cG9y
dERhdGEsIChrZXksIHZhbHVlKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGZpbHRlcktleXMu
aGFzKGtleSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPGZpbHRlcmVkPiI7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAg
ICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlRpbWVsaW5l
UmVjb3JkaW5nLmltcG9ydCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBmb3IgYSByZWNv
cmRpbmcgaW1wb3J0LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChleHBvcnREYXRhLCAiRkFJTDogUHJldmlvdXMgdGVzdCBleHBvcnRp
bmcgYSByZWNvcmRpbmcgZmFpbGVkLiIpOworCisgICAgICAgICAgICAvLyBOT1RFOiBUaGlzIHJ1
bnMgdGhlIHRvSlNPTiBoYW5kbGVycyBvbiB0aGUgdGltZWxpbmUgcmVjb3JkcyBhbmQgbW9yZSwg
d2hpY2ggaXMgaW1wb3J0YW50CisgICAgICAgICAgICAvLyBiZWNhdXNlIGltcG9ydGluZyBleHBl
Y3RzIHRoZSBzZXJpYWxpemVkIGZvcm0gb2YgdGhlIG9iamVjdHMsIG5vdCByYXcgb2JqZWN0cy4K
KyAgICAgICAgICAgIGxldCBqc29uRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXhw
b3J0RGF0YSkpOworCisgICAgICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gOTk5OworICAgICAg
ICAgICAgbGV0IHJlY29yZGluZyA9IFdJLlRpbWVsaW5lUmVjb3JkaW5nLmltcG9ydChpZGVudGlm
aWVyLCBqc29uRGF0YSwgIm5hbWUiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
Tm90RXF1YWwoV0kudGltZWxpbmVNYW5hZ2VyLmFjdGl2ZVJlY29yZGluZywgcmVjb3JkaW5nLCAi
VGltZWxpbmVNYW5hZ2VyIGFjdGl2ZSByZWNvcmRpbmcgaXMgbm90IHRoaXMgaW1wb3J0ZWQgcmVj
b3JkaW5nLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShyZWNvcmRp
bmcuY2FwdHVyaW5nLCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcu
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRydWUocmVjb3JkaW5nLnJlYWRv
bmx5LCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGJlIHJlYWRvbmx5LiIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUcnVlKHJlY29yZGluZy5pbXBvcnRlZCwgIlRpbWVsaW5l
UmVjb3JkaW5nIHNob3VsZCBiZSBpbXBvcnRlZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghaXNOYU4ocmVjb3JkaW5nLnN0YXJ0VGltZSksICJUaW1lbGluZVJlY29y
ZGluZyBzaG91bGQgaGF2ZSBhIHN0YXJ0VGltZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghaXNOYU4ocmVjb3JkaW5nLmVuZFRpbWUpLCAiVGltZWxpbmVSZWNvcmRp
bmcgc2hvdWxkIGhhdmUgYSBlbmRUaW1lLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChyZWNvcmRpbmcuaWRlbnRpZmllciwgaWRlbnRpZmllciwgYFRpbWVsaW5lUmVj
b3JkaW5nIGlkZW50aWZpZXIgc2hvdWxkIGJlICR7aWRlbnRpZmllcn0uYCk7CisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCItLSBEaXNwbGF5IE5hbWU6Iik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhyZWNvcmRpbmcuZGlzcGxheU5hbWUpOworICAgICAgICB9CisgICAg
fSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgZm9yIHRpbWVsaW5l
IHJlY29yZGluZy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpp
bmRleCBiMDcxZDA3ZTZhNi4uMGE0YjZjNDBhZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4MSBAQAorMjAxOS0wMy0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lcyAtIEltcG9ydCAv
IEV4cG9ydCBUaW1lbGluZSBSZWNvcmRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU3MDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMTg4
OTIxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRp
bWVsaW5lIGV4cG9ydGluZyBzYXZlcyBUaW1lbGluZVJlY29yZGluZyBhbmQgVGltZWxpbmVPdmVy
dmlldyBzdGF0ZS4KKyAgICAgICAgVGhlIFRpbWVsaW5lUmVjb3JkaW5nIGluY2x1ZGVzIGFsbCBr
aW5kcyBvZiBtb2RlbCBvYmplY3RzLCBzdWNoIGFzCisgICAgICAgIHJlY29yZHMsIG1hcmtlcnMs
IG1lbW9yeSBwcmVzc3VyZSBldmVudHMsIGV0Yy4gSXQgYWxzbyBpbmNsdWRlcyByYXcKKyAgICAg
ICAgcHJvdG9jb2wgZGF0YSwgc3VjaCBhcyBzY3JpcHQgcHJvZmlsZXIgc2FtcGxlcy4gVGltZWxp
bmVPdmVydmlldworICAgICAgICBpbmNsdWRlcyBzb21lIG9mIHRoZSB2aWV3IHN0YXRlIHRvIHJl
c3RvcmUsIHN1Y2ggYXMgdGhlIHNlbGVjdGVkCisgICAgICAgIHRpbWUgcmFuZ2UsIHpvb20gbGV2
ZWwsIGFuZCBzZWxlY3RlZCB0aW1lbGluZS4KKworICAgICAgICBUaW1lbGluZSBpbXBvcnRpbmcg
Y29uc3RydWN0cyBhIG5ldyBUaW1lbGluZVJlY29yZGluZyBieSByZXBsYXlpbmcKKyAgICAgICAg
dGhlIHJlY29yZHMsIG1hcmtlcnMsIGFuZCBvdGhlciBldmVudHMsIGFzIHdlbGwgYXMgcmUtaW5p
dGlhbGl6aW5nCisgICAgICAgIG1vcmUgc3RhdGUuIFRvIGZpbmFsbHkgZGlzcGxheSB0aGUgaW1w
b3J0ZWQgcmVjb3JkaW5nLCB0aGUgY29udGVudAorICAgICAgICB2aWV3IHdpbGwgaW1tZWRpYXRl
bHkgaW5pdGlhbGl6ZSBzdGFydC9jdXJyZW50L2VuZCB0aW1lcyBhbmQgdGhlCisgICAgICAgIG92
ZXJ2aWV3IHdpbGwgcmVzdG9yZSB0aGUgdmlldyBzdGF0ZS4KKworICAgICAgICAqIExvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgTmV3IHN0cmluZ3Mu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5q
czoKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFuYWdlci5zeW50aGVzaXplSW1wb3J0RXJyb3IpOgor
ICAgICAgICAoV0kuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5pbXBvcnRSZWNvcmRpbmcpOgor
ICAgICAgICBJbXBvcnQgQVBJLgorCisgICAgICAgIChXSS5UaW1lbGluZU1hbmFnZXIucHJvdG90
eXBlLnNjcmlwdFByb2ZpbGVyVHJhY2tpbmdDb21wbGV0ZWQpOgorICAgICAgICBJbml0aWFsaXpl
IHRoZSBzYW1wbGVzIG9uIHRoZSByZWNvcmRpbmcgdmlhIGEgZGlmZmVyZW50IHBhdGgKKyAgICAg
ICAgc28gdGhhdCB0aGUgZGF0YSBjYW4gYmUgc2F2ZWQgZm9yIGV4cG9ydGluZy4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpzOgorICAgICAgICAo
V0kuVGltZWxpbmVSZWNvcmRpbmcpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcuaW1w
b3J0KToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5leHBvcnREYXRh
KToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5nZXQgY2FwdHVyaW5n
KToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5nZXQgaW1wb3J0ZWQp
OgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLnVubG9hZGVkKToKKyAg
ICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChX
SS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuYWRkRXZlbnRNYXJrZXIpOgorICAgICAgICAo
V0kuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLmFkZFJlY29yZCk6CisgICAgICAgIChXSS5U
aW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuYWRkTWVtb3J5UHJlc3N1cmVFdmVudCk6CisgICAg
ICAgIChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuaW5pdGlhbGl6ZUNhbGxpbmdDb250
ZXh0VHJlZXMpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLmNhbkV4
cG9ydCk6CisgICAgICAgIFNhdmUgZGF0YSBhdCB0aGUgVGltZWxpbmVSZWNvcmRpbmcgbGV2ZWwg
dGhhdCBjYW4gYmUgdXNlZCBmb3IgZXhwb3J0LgorICAgICAgICBXZSBvbmx5IGFsbG93IGV4cG9y
dGluZyBhIFRpbWVsaW5lUmVjb3JkaW5nIHRoYXQgaGFzIHN0YXJ0ZWQvc3RvcHBlZAorICAgICAg
ICBhdCBsZWFzdCBvbmNlIGFuZCBpcyBub3QgY3VycmVudGx5IGNhcHR1cmluZy4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qczoK
KyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcpOgorICAgICAgICAoV0ku
VGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IG5hdmlnYXRpb25JdGVt
cyk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5n
ZXQgc3VwcG9ydHNTYXZlKToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZp
ZXcucHJvdG90eXBlLmdldCBzYXZlRGF0YSk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGlu
Z0NvbnRlbnRWaWV3LnByb3RvdHlwZS5zaG93bik6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fY2FwdHVyaW5nU3RhcnRlZCk6CisgICAgICAgIChX
SS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fY2FwdHVyaW5nU3RvcHBl
ZCk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5f
aW5pdGlhbGl6ZUltcG9ydGVkUmVjb3JkaW5nKToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcucHJvdG90eXBlLl9leHBvcnRUaW1lbGluZVJlY29yZGluZyk6CisgICAg
ICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnByb3RvdHlwZS5faW1wb3J0QnV0
dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5n
Q29udGVudFZpZXcucHJvdG90eXBlLl9yZWNvcmRpbmdSZXNldCk6CisgICAgICAgIEFkZCBJbXBv
cnQgYW5kIEV4cG9ydCBidXR0b25zIGluIHRoZSBUaW1lbGluZSBuYXZpZ2F0aW9uIGJhci4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5qczoKKyAgICAg
ICAgKFdJLlRpbWVsaW5lT3ZlcnZpZXcpOgorICAgICAgICAoV0kuVGltZWxpbmVPdmVydmlldy5w
cm90b3R5cGUuZXhwb3J0RGF0YSk6CisgICAgICAgIChXSS5UaW1lbGluZU92ZXJ2aWV3LnByb3Rv
dHlwZS5faW5zdHJ1bWVudEFkZGVkKToKKyAgICAgICAgKFdJLlRpbWVsaW5lT3ZlcnZpZXcucHJv
dG90eXBlLl9yZWNvcmRpbmdJbXBvcnRlZCk6CisgICAgICAgIFdoZW4gaW1wb3J0aW5nIGEgcmVj
b3JkaW5nIHVwZGF0ZSB0aGUgVGltZWxpbmVPdmVydmlldyBzdGF0ZQorICAgICAgICBzb29uIGFm
dGVyd2FyZHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DUFVUaW1lbGluZVJl
Y29yZC5qczoKKyAgICAgICAgKFdJLkNQVVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAgICAg
ICAgKFdJLkNQVVRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL0dhcmJhZ2VDb2xsZWN0aW9uLmpzOgorICAgICAgICAoV0kuR2Fy
YmFnZUNvbGxlY3Rpb24uZnJvbUpTT04pOgorICAgICAgICAoV0kuR2FyYmFnZUNvbGxlY3Rpb24u
cHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0
cnkuanM6CisgICAgICAgIChXSS5RdWFkLmZyb21KU09OKToKKyAgICAgICAgKFdJLlF1YWQucHJv
dG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSGVhcEFsbG9j
YXRpb25zVGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5IZWFwQWxsb2NhdGlvbnNUaW1l
bGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAgIChXSS5IZWFwQWxsb2NhdGlvbnNUaW1lbGlu
ZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9MYXlvdXRUaW1lbGluZVJlY29yZC5qczoKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lUmVj
b3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lUmVjb3JkLnByb3RvdHlw
ZS50b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlhVGltZWxpbmVS
ZWNvcmQuanM6CisgICAgICAgIChXSS5NZWRpYVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAg
ICAgICAgKFdJLk1lZGlhVGltZWxpbmVSZWNvcmQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5UHJlc3N1cmVFdmVudC5qczoKKyAgICAgICAg
KFdJLk1lbW9yeVByZXNzdXJlRXZlbnQuZnJvbUpTT04pOgorICAgICAgICAoV0kuTWVtb3J5UHJl
c3N1cmVFdmVudC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01v
ZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qczoKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5l
UmVjb3JkKToKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAg
ICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuanM6
CisgICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAg
ICAgICAgKFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQucHJvdG90eXBlLnRvSlNPTik6
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1lbGluZVJlY29yZC5q
czoKKyAgICAgICAgKFdJLlJlc291cmNlVGltZWxpbmVSZWNvcmQuZnJvbUpTT04pOgorICAgICAg
ICAoV0kuUmVzb3VyY2VUaW1lbGluZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qczoKKyAgICAgICAg
KFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJLlNjcmlwdFRp
bWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
TW9kZWxzL1RpbWVsaW5lTWFya2VyLmpzOgorICAgICAgICAoV0kuVGltZWxpbmVNYXJrZXIuZnJv
bUpTT04pOgorICAgICAgICAoV0kuVGltZWxpbmVNYXJrZXIucHJvdG90eXBlLnRvSlNPTik6Cisg
ICAgICAgIChXSS5UaW1lbGluZU1hcmtlci5wcm90b3R5cGUuZ2V0IHR5cGUpOgorICAgICAgICAo
V0kuVGltZWxpbmVNYXJrZXIucHJvdG90eXBlLmdldCBkZXRhaWxzKToKKyAgICAgICAgKFdJLlRp
bWVsaW5lTWFya2VyLnByb3RvdHlwZS5zZXQgdGltZSk6CisgICAgICAgIChXSS5UaW1lbGluZU1h
cmtlcik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQuanM6
CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAgIChXSS5UaW1l
bGluZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAgSW1wb3J0IC8gRXhwb3J0IHRv
SlNPTiAvIGZyb21KU09OIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGguanM6CisgICAgICAgIChX
SS5DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGgpOgorICAgICAgICAoV0kuQ1BVVGltZWxpbmVPdmVy
dmlld0dyYXBoLnByb3RvdHlwZS5fY3B1VGltZWxpbmVSZWNvcmRBZGRlZCk6CisgICAgICAgIChX
SS5DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLl9wcm9jZXNzUmVjb3JkKToKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5q
czoKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaCk6CisgICAgICAgIChX
SS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLl9sYXlvdXRUaW1lbGluZVJl
Y29yZEFkZGVkKToKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90
b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5
b3V0VGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuTGF5b3V0VGltZWxpbmVWaWV3KToKKyAg
ICAgICAgKFdJLkxheW91dFRpbWVsaW5lVmlldy5wcm90b3R5cGUuX2xheW91dFRpbWVsaW5lUmVj
b3JkQWRkZWQpOgorICAgICAgICAoV0kuTGF5b3V0VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJv
Y2Vzc1JlY29yZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9NZWRpYVRpbWVsaW5l
Vmlldy5qczoKKyAgICAgICAgKFdJLk1lZGlhVGltZWxpbmVWaWV3KToKKyAgICAgICAgKFdJLk1l
ZGlhVGltZWxpbmVWaWV3LnByb3RvdHlwZS5faGFuZGxlUmVjb3JkQWRkZWQpOgorICAgICAgICAo
V0kuTWVkaWFUaW1lbGluZVZpZXcucHJvdG90eXBlLl9wcm9jZXNzUmVjb3JkKToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qczoKKyAg
ICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCk6CisgICAgICAgIChXSS5NZW1v
cnlUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLl9tZW1vcnlUaW1lbGluZVJlY29yZEFk
ZGVkKToKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUu
X3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTWVtb3J5VGlt
ZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuTWVtb3J5VGltZWxpbmVWaWV3KToKKyAgICAgICAg
KFdJLk1lbW9yeVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX21lbW9yeVRpbWVsaW5lUmVjb3JkQWRk
ZWQpOgorICAgICAgICAoV0kuTWVtb3J5VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1Jl
Y29yZCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVPdmVy
dmlld0dyYXBoLmpzOgorICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCk6
CisgICAgICAgIChXSS5OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlwZS5yZXNl
dCk6CisgICAgICAgIChXSS5OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlwZS5f
bmV0d29ya1RpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5l
T3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAoV0kuTmV0
d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUuX25ldHdvcmtUaW1lbGluZVJlY29y
ZEFkZGVkLmNvbXBhcmVCeVN0YXJ0VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuTmV0d29ya1Rp
bWVsaW5lVmlldyk6CisgICAgICAgIChXSS5OZXR3b3JrVGltZWxpbmVWaWV3LnByb3RvdHlwZS5f
bmV0d29ya1RpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5l
Vmlldy5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXSS5SZW5kZXJp
bmdGcmFtZVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5l
Vmlldy5wcm90b3R5cGUuX3JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmRBZGRlZCk6CisgICAg
ICAgIChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NSZWNv
cmQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5l
Vmlldy5qczoKKyAgICAgICAgKFdJLlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcpOgorICAgICAg
ICAoV0kuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5wcm90b3R5cGUuX3NjcmlwdFRpbWVsaW5l
UmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5wcm90
b3R5cGUuX3Byb2Nlc3NSZWNvcmQpOgorICAgICAgICBBZGQgY29tbW9uIF9wcm9jZXNzUmVjb3Jk
IHBhdGggdG8gZWFjaCB0aW1lbGluZSBPdmVydmlld0dyYXBoIGFuZCBUaW1lbGluZVZpZXcuCisg
ICAgICAgIEJ5IGNhbGxpbmcgdGhpcyBpbiBjb25zdHJ1Y3Rpb24gd2UgcG9wdWxhdGUgZ3JhcGhz
IHdpdGggVGltZWxpbmVSZWNvcmRzIHRoYXQKKyAgICAgICAgbWF5IGhhdmUgYWxyZWFkeSBleGlz
dGVkLiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgaW1wb3J0cywgYnV0IHRoaXMgYWxzbyBmaXhlcwor
ICAgICAgICB0aGUgY2FzZSB3aGVyZSB5b3UgZW5hYmxlIGEgdGltZWxpbmUgdGhhdCBoYWQgZGF0
YSBhbmQgaXQgZGlkbid0IHNob3cgZGF0YS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmNzczoKKyAgICAgICAgKC50aW1lbGluZS1v
dmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgtcm93KToKKyAgICAgICAgKC50
aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgtcm93ID4gLnRp
bWVsaW5lLXJlY29yZC1iYXIpOgorICAgICAgICAoLnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBoLmxh
eW91dC1vdmVydmlldyA+IC5ncmFwaC1yb3cgPiAudGltZWxpbmUtcmVjb3JkLWJhciA+IC5zZWdt
ZW50KToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgt
cm93KTogRGVsZXRlZC4KKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQg
PiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5lLXJlY29yZC1iYXIpOiBEZWxldGVkLgorICAgICAgICAo
LnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBoLmxheW91dCA+IC5ncmFwaC1yb3cgPiAudGltZWxpbmUt
cmVjb3JkLWJhciA+IC5zZWdtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1RpbWVsaW5lUmVjb3JkQmFyLmNzczoKKyAgICAgICAgKC50aW1lbGluZS1yZWNvcmQt
YmFyLnRpbWVsaW5lLXJlY29yZC10eXBlLWxheW91dC5wYWludCA+IC5zZWdtZW50LCk6CisgICAg
ICAgICgudGltZWxpbmUtcmVjb3JkLWJhci50aW1lbGluZS1yZWNvcmQtdHlwZS1sYXlvdXQubGF5
b3V0LXRpbWVsaW5lLXJlY29yZC1wYWludCA+IC5zZWdtZW50LCk6IERlbGV0ZWQuCisgICAgICAg
IFdlIHNpbXBsaWZpZWQgc29tZSBvZiB0aGUgc3ViLXJlY29yZCB0eXBlIGVudW0gc3RyaW5ncy4g
VG8gZG8gdGhpcyB3ZSBuZWVkZWQgdG8gY2hhbmdlCisgICAgICAgICJsYXlvdXQiIHRvICJsYXlv
dXQtb3ZlcnZpZXciIHRvIGF2b2lkIGEgY29uZmxpY3QuCisKIDIwMTktMDMtMTQgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBO
ZXR3b3JrIC0gSEFSIEltcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXgg
YmJhNWE2Njk5OGIuLmMwY2U5NTAzYmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMKQEAgLTU1Miw3ICs1NTIsOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJJbWFnZXMiXSA9ICJJbWFn
ZXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW1tZWRpYXRlIFBhdXNlIFJlcXVlc3RlZCJdID0gIklt
bWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiOwogbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0Il0gPSAi
SW1wb3J0IjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIl0gPSAiSW1wb3J0ZWQiOworbG9j
YWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgLSAlcyJdID0gIkltcG9ydGVkIC0gJXMiOwogbG9jYWxp
emVkU3RyaW5nc1siSW1wb3J0ZWQgUmVjb3JkaW5ncyJdID0gIkltcG9ydGVkIFJlY29yZGluZ3Mi
OworbG9jYWxpemVkU3RyaW5nc1siSW1wb3J0ZWQgVGltZWxpbmUgUmVjb3JkaW5nIl0gPSAiSW1w
b3J0ZWQgVGltZWxpbmUgUmVjb3JkaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIFx1
MjAxNCAlcyJdID0gIkltcG9ydGVkIFx1MjAxNCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbmNv
bXBsZXRlIl0gPSAiSW5jb21wbGV0ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbmRlbnQgd2lkdGg6
Il0gPSAiSW5kZW50IHdpZHRoOiI7CkBAIC0xMDUyLDYgKzEwNTQsNyBAQCBsb2NhbGl6ZWRTdHJp
bmdzWyJUaW1lIHNwZW50IG9uIHRoZSBtYWluIHRocmVhZCJdID0gIlRpbWUgc3BlbnQgb24gdGhl
IG1haW4gdGhyZQogbG9jYWxpemVkU3RyaW5nc1siVGltZSB0byBGaXJzdCBCeXRlIl0gPSAiVGlt
ZSB0byBGaXJzdCBCeXRlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlRpbWVsaW5lIl0gPSAiVGltZWxp
bmUiOwogbG9jYWxpemVkU3RyaW5nc1siVGltZWxpbmUgUmVjb3JkaW5nICVkIl0gPSAiVGltZWxp
bmUgUmVjb3JkaW5nICVkIjsKK2xvY2FsaXplZFN0cmluZ3NbIlRpbWVsaW5lIFJlY29yZGluZyBJ
bXBvcnQgRXJyb3I6ICVzIl0gPSAiVGltZWxpbmUgUmVjb3JkaW5nIEltcG9ydCBFcnJvcjogJXMi
OwogbG9jYWxpemVkU3RyaW5nc1siVGltZWxpbmVzIl0gPSAiVGltZWxpbmVzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlRpbWVyICVkIEZpcmVkIl0gPSAiVGltZXIgJWQgRmlyZWQiOwogbG9jYWxpemVk
U3RyaW5nc1siVGltZXIgJWQgSW5zdGFsbGVkIl0gPSAiVGltZXIgJWQgSW5zdGFsbGVkIjsKQEAg
LTExODYsNCArMTE4OSw1IEBAIGxvY2FsaXplZFN0cmluZ3NbInRvZ2dsZSJdID0gInRvZ2dsZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJ1bmtub3duICVzIFx1MDAyMiVzXHUwMDIyIl0gPSAidW5rbm93
biAlcyBcdTAwMjIlc1x1MDAyMiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJ1bnN1cHBvcnRlZCAlcyJd
ID0gInVuc3VwcG9ydGVkICVzIjsKIGxvY2FsaXplZFN0cmluZ3NbInVuc3VwcG9ydGVkIEhBUiB2
ZXJzaW9uIl0gPSAidW5zdXBwb3J0ZWQgSEFSIHZlcnNpb24iOworbG9jYWxpemVkU3RyaW5nc1si
dW5zdXBwb3J0ZWQgdmVyc2lvbiJdID0gInVuc3VwcG9ydGVkIHZlcnNpb24iOwogbG9jYWxpemVk
U3RyaW5nc1sidmFsdWUiXSA9ICJ2YWx1ZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggNGQ3NDNhYmJhNjAuLmZjZjlhMmU2NTM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01h
aW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWlu
LmpzCkBAIC0yNzM2LDcgKzI3MzYsNyBAQCBXSS5lbGVtZW50RHJhZ0VuZCA9IGZ1bmN0aW9uKGV2
ZW50KQogCiBXSS5jcmVhdGVNZXNzYWdlVGV4dFZpZXcgPSBmdW5jdGlvbihtZXNzYWdlLCBpc0Vy
cm9yKQogewotICAgIHZhciBtZXNzYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgIGxldCBtZXNzYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgIG1lc3NhZ2VFbGVtZW50LmNsYXNzTmFtZSA9ICJtZXNzYWdlLXRleHQtdmll
dyI7CiAgICAgaWYgKGlzRXJyb3IpCiAgICAgICAgIG1lc3NhZ2VFbGVtZW50LmNsYXNzTGlzdC5h
ZGQoImVycm9yIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKaW5kZXggOWYz
ZWQxYmVkNjUuLmQ4YTUzODllMTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2Vy
LmpzCkBAIC0xMzYsNiArMTM2LDIxIEBAIFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVs
aW5lTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAg
fQogCisgICAgc3RhdGljIHN5bnRoZXNpemVJbXBvcnRFcnJvcihtZXNzYWdlKQorICAgIHsKKyAg
ICAgICAgbWVzc2FnZSA9IFdJLlVJU3RyaW5nKCJUaW1lbGluZSBSZWNvcmRpbmcgSW1wb3J0IEVy
cm9yOiAlcyIpLmZvcm1hdChtZXNzYWdlKTsKKworICAgICAgICBpZiAod2luZG93Lkluc3BlY3Rv
clRlc3QpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgY29uc29sZU1lc3NhZ2UgPSBuZXcg
V0kuQ29uc29sZU1lc3NhZ2UoV0kubWFpblRhcmdldCwgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVNvdXJjZS5PdGhlciwgV0kuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yLCBtZXNz
YWdlKTsKKyAgICAgICAgY29uc29sZU1lc3NhZ2Uuc2hvdWxkUmV2ZWFsQ29uc29sZSA9IHRydWU7
CisKKyAgICAgICAgV0kuY29uc29sZUxvZ1ZpZXdDb250cm9sbGVyLmFwcGVuZENvbnNvbGVNZXNz
YWdlKGNvbnNvbGVNZXNzYWdlKTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIHJlc2V0
KCkKQEAgLTI1OSw2ICsyNzQsNTIgQEAgV0kuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxp
bmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2FjdGl2ZVJlY29yZGlu
ZyA9IG51bGw7CiAgICAgfQogCisgICAgcHJvY2Vzc0pTT04oe2ZpbGVuYW1lLCBqc29uLCBlcnJv
cn0pCisgICAgeworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFdJLlRpbWVsaW5l
TWFuYWdlci5zeW50aGVzaXplSW1wb3J0RXJyb3IoZXJyb3IpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHR5cGVvZiBqc29uICE9PSAib2JqZWN0IiB8fCBq
c29uID09PSBudWxsKSB7CisgICAgICAgICAgICBXSS5UaW1lbGluZU1hbmFnZXIuc3ludGhlc2l6
ZUltcG9ydEVycm9yKFdJLlVJU3RyaW5nKCJpbnZhbGlkIEpTT04iKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWpzb24ucmVjb3JkaW5nICB8fCB0eXBl
b2YganNvbi5yZWNvcmRpbmcgIT09ICJvYmplY3QiIHx8ICFqc29uLm92ZXJ2aWV3IHx8IHR5cGVv
ZiBqc29uLm92ZXJ2aWV3ICE9PSAib2JqZWN0IiB8fCB0eXBlb2YganNvbi52ZXJzaW9uICE9PSAi
bnVtYmVyIikgeworICAgICAgICAgICAgV0kuVGltZWxpbmVNYW5hZ2VyLnN5bnRoZXNpemVJbXBv
cnRFcnJvcihXSS5VSVN0cmluZygiaW52YWxpZCBKU09OIikpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGpzb24udmVyc2lvbiAhPT0gV0kuVGltZWxpbmVS
ZWNvcmRpbmcuU2VyaWFsaXphdGlvblZlcnNpb24pIHsKKyAgICAgICAgICAgIFdJLk5ldHdvcmtN
YW5hZ2VyLnN5bnRoZXNpemVJbXBvcnRFcnJvcihXSS5VSVN0cmluZygidW5zdXBwb3J0ZWQgdmVy
c2lvbiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBy
ZWNvcmRpbmdEYXRhID0ganNvbi5yZWNvcmRpbmc7CisgICAgICAgIGxldCBvdmVydmlld0RhdGEg
PSBqc29uLm92ZXJ2aWV3OworCisgICAgICAgIGxldCBpZGVudGlmaWVyID0gdGhpcy5fbmV4dFJl
Y29yZGluZ0lkZW50aWZpZXIrKzsKKyAgICAgICAgbGV0IG5ld1JlY29yZGluZyA9IFdJLlRpbWVs
aW5lUmVjb3JkaW5nLmltcG9ydChpZGVudGlmaWVyLCByZWNvcmRpbmdEYXRhLCBmaWxlbmFtZSk7
CisgICAgICAgIHRoaXMuX3JlY29yZGluZ3MucHVzaChuZXdSZWNvcmRpbmcpOworCisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlRpbWVsaW5lTWFuYWdlci5FdmVudC5S
ZWNvcmRpbmdDcmVhdGVkLCB7cmVjb3JkaW5nOiBuZXdSZWNvcmRpbmd9KTsKKworICAgICAgICBp
ZiAodGhpcy5faXNDYXB0dXJpbmcpCisgICAgICAgICAgICB0aGlzLnN0b3BDYXB0dXJpbmcoKTsK
KworICAgICAgICBsZXQgb2xkUmVjb3JkaW5nID0gdGhpcy5fYWN0aXZlUmVjb3JkaW5nOworICAg
ICAgICBpZiAob2xkUmVjb3JkaW5nKSB7CisgICAgICAgICAgICBjb25zdCBpbXBvcnRpbmcgPSB0
cnVlOworICAgICAgICAgICAgb2xkUmVjb3JkaW5nLnVubG9hZGVkKGltcG9ydGluZyk7CisgICAg
ICAgIH0KKworICAgICAgICB0aGlzLl9hY3RpdmVSZWNvcmRpbmcgPSBuZXdSZWNvcmRpbmc7CisK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuVGltZWxpbmVNYW5hZ2Vy
LkV2ZW50LlJlY29yZGluZ0xvYWRlZCwge29sZFJlY29yZGluZ30pOworICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5UaW1lbGluZU1hbmFnZXIuRXZlbnQuUmVjb3JkaW5n
SW1wb3J0ZWQsIHtvdmVydmlld0RhdGF9KTsKKyAgICB9CisKICAgICBjb21wdXRlRWxhcHNlZFRp
bWUodGltZXN0YW1wKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVSZWNvcmRpbmcp
CkBAIC0xMDI2LDkgKzEwODcsNiBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGlu
ZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKHNhbXBsZXMpIHsKICAgICAg
ICAgICAgIGxldCB7c3RhY2tUcmFjZXN9ID0gc2FtcGxlczsKICAgICAgICAgICAgIGxldCB0b3BE
b3duQ2FsbGluZ0NvbnRleHRUcmVlID0gdGhpcy5hY3RpdmVSZWNvcmRpbmcudG9wRG93bkNhbGxp
bmdDb250ZXh0VHJlZTsKLSAgICAgICAgICAgIGxldCBib3R0b21VcENhbGxpbmdDb250ZXh0VHJl
ZSA9IHRoaXMuYWN0aXZlUmVjb3JkaW5nLmJvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlOwotICAg
ICAgICAgICAgbGV0IHRvcEZ1bmN0aW9uc1RvcERvd25DYWxsaW5nQ29udGV4dFRyZWUgPSB0aGlz
LmFjdGl2ZVJlY29yZGluZy50b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlOwot
ICAgICAgICAgICAgbGV0IHRvcEZ1bmN0aW9uc0JvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlID0g
dGhpcy5hY3RpdmVSZWNvcmRpbmcudG9wRnVuY3Rpb25zQm90dG9tVXBDYWxsaW5nQ29udGV4dFRy
ZWU7CiAKICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhIHBlci1zYW1wbGUgZHVyYXRpb24uCiAg
ICAgICAgICAgICBsZXQgdGltZXN0YW1wSW5kZXggPSAwOwpAQCAtMTA2MiwxMiArMTEyMCw3IEBA
IFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgaWYgKHRpbWVzdGFtcEluZGV4IDwgdGltZXN0YW1wQ291bnQpCiAg
ICAgICAgICAgICAgICAgc2FtcGxlRHVyYXRpb25zLmZpbGwoZGVmYXVsdER1cmF0aW9uLCBzYW1w
bGVEdXJhdGlvbkluZGV4KTsKIAotICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFj
a1RyYWNlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIHRvcERvd25DYWxsaW5nQ29u
dGV4dFRyZWUudXBkYXRlVHJlZVdpdGhTdGFja1RyYWNlKHN0YWNrVHJhY2VzW2ldLCBzYW1wbGVE
dXJhdGlvbnNbaV0pOwotICAgICAgICAgICAgICAgIGJvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVl
LnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRpb25z
W2ldKTsKLSAgICAgICAgICAgICAgICB0b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRU
cmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRp
b25zW2ldKTsKLSAgICAgICAgICAgICAgICB0b3BGdW5jdGlvbnNCb3R0b21VcENhbGxpbmdDb250
ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNrVHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1
cmF0aW9uc1tpXSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmFjdGl2ZVJlY29y
ZGluZy5pbml0aWFsaXplQ2FsbGluZ0NvbnRleHRUcmVlcyhzdGFja1RyYWNlcywgc2FtcGxlRHVy
YXRpb25zKTsKIAogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdHJhbnNmb3JtYXRpb24gc2hv
dWxkIG5vdCBiZSBuZWVkZWQgYWZ0ZXIgaW50cm9kdWNpbmcgUHJvZmlsZVZpZXcuCiAgICAgICAg
ICAgICAvLyBPbmNlIHdlIGVsaW1pbmF0ZSBQcm9maWxlTm9kZVRyZWVFbGVtZW50cyBhbmQgUHJv
ZmlsZU5vZGVEYXRhR3JpZE5vZGVzLgpAQCAtMTIxMyw2ICsxMjY2LDcgQEAgV0kuVGltZWxpbmVN
YW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiBXSS5UaW1l
bGluZU1hbmFnZXIuRXZlbnQgPSB7CiAgICAgUmVjb3JkaW5nQ3JlYXRlZDogInRpbWVsaW5lLW1h
bmFnZXItcmVjb3JkaW5nLWNyZWF0ZWQiLAogICAgIFJlY29yZGluZ0xvYWRlZDogInRpbWVsaW5l
LW1hbmFnZXItcmVjb3JkaW5nLWxvYWRlZCIsCisgICAgUmVjb3JkaW5nSW1wb3J0ZWQ6ICJ0aW1l
bGluZS1tYW5hZ2VyLXJlY29yZGluZy1pbXBvcnRlZCIsCiAgICAgQ2FwdHVyaW5nV2lsbFN0YXJ0
OiAidGltZWxpbmUtbWFuYWdlci1jYXB0dXJpbmctd2lsbC1zdGFydCIsCiAgICAgQ2FwdHVyaW5n
U3RhcnRlZDogInRpbWVsaW5lLW1hbmFnZXItY2FwdHVyaW5nLXN0YXJ0ZWQiLAogICAgIENhcHR1
cmluZ1N0b3BwZWQ6ICJ0aW1lbGluZS1tYW5hZ2VyLWNhcHR1cmluZy1zdG9wcGVkIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGQxYzI2MDU0
OTk2Li40MWRiN2RlNjFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbApAQCAtMjIyLDYgKzIyMiw3IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9UaW1lbGluZVJlY29yZEJhci5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVGltZWxpbmVSZWNvcmRGcmFtZS5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50
Vmlldy5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvVGltZWxp
bmVSZWNvcmRpbmdJbXBvcnRlZFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL1RpbWVsaW5lUnVsZXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL1RpbWVsaW5lVGFiQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1RpbWVsaW5lVmlldy5jc3MiPgpAQCAtODI2LDYg
KzgyNyw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1RpbWVsaW5lUmVjb3JkRnJhbWUuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRl
bnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvVGltZWxpbmVSZWNv
cmRpbmdQcm9ncmVzc1ZpZXcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9U
aW1lbGluZVJlY29yZGluZ0ltcG9ydGVkVmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL1RpbWVsaW5lUnVsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9UaXRsZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Ub2dn
bGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1BVVGltZWxpbmVSZWNvcmQuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1BVVGltZWxpbmVS
ZWNvcmQuanMKaW5kZXggZWEwN2JmYzMxMzYuLjIxNjY4OTFlMTZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1BVVGltZWxpbmVSZWNvcmQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NQVVRp
bWVsaW5lUmVjb3JkLmpzCkBAIC0zNiw4ICszNiw3IEBAIFdJLkNQVVRpbWVsaW5lUmVjb3JkID0g
Y2xhc3MgQ1BVVGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29yZAogCiAgICAg
ICAgIHRoaXMuX3RpbWVzdGFtcCA9IHRpbWVzdGFtcDsKICAgICAgICAgdGhpcy5fdXNhZ2UgPSB1
c2FnZTsKLQotICAgICAgICB0aHJlYWRzID0gdGhyZWFkcyB8fCBbXTsKKyAgICAgICAgdGhpcy5f
dGhyZWFkcyA9IHRocmVhZHMgfHwgW107CiAKICAgICAgICAgdGhpcy5fbWFpblRocmVhZFVzYWdl
ID0gMDsKICAgICAgICAgdGhpcy5fd2Via2l0VGhyZWFkVXNhZ2UgPSAwOwpAQCAtNDUsNyArNDQs
NyBAQCBXSS5DUFVUaW1lbGluZVJlY29yZCA9IGNsYXNzIENQVVRpbWVsaW5lUmVjb3JkIGV4dGVu
ZHMgV0kuVGltZWxpbmVSZWNvcmQKICAgICAgICAgdGhpcy5fdW5rbm93blRocmVhZFVzYWdlID0g
MDsKICAgICAgICAgdGhpcy5fd29ya2Vyc0RhdGEgPSBudWxsOwogCi0gICAgICAgIGZvciAobGV0
IHRocmVhZCBvZiB0aHJlYWRzKSB7CisgICAgICAgIGZvciAobGV0IHRocmVhZCBvZiB0aGlzLl90
aHJlYWRzKSB7CiAgICAgICAgICAgICBpZiAodGhyZWFkLnR5cGUgPT09IEluc3BlY3RvckJhY2tl
bmQuZG9tYWlucy5DUFVQcm9maWxlci5UaHJlYWRJbmZvVHlwZS5NYWluKSB7CiAgICAgICAgICAg
ICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX21haW5UaHJlYWRVc2FnZSwgIlRoZXJlIHNob3Vs
ZCBvbmx5IGJlIG9uZSBtYWluIHRocmVhZC4iKTsKICAgICAgICAgICAgICAgICB0aGlzLl9tYWlu
VGhyZWFkVXNhZ2UgKz0gdGhyZWFkLnVzYWdlOwpAQCAtNjksNiArNjgsMjMgQEAgV0kuQ1BVVGlt
ZWxpbmVSZWNvcmQgPSBjbGFzcyBDUFVUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJLlRpbWVsaW5l
UmVjb3JkCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAg
IHN0YXRpYyBmcm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5DUFVU
aW1lbGluZVJlY29yZChqc29uKTsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAgICAgICAgIHRp
bWVzdGFtcDogdGhpcy5fdGltZXN0YW1wLAorICAgICAgICAgICAgdXNhZ2U6IHRoaXMuX3VzYWdl
LAorICAgICAgICAgICAgdGhyZWFkczogdGhpcy5fdGhyZWFkcywKKyAgICAgICAgfTsKKyAgICB9
CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0aW1lc3RhbXAoKSB7IHJldHVybiB0aGlzLl90
aW1lc3RhbXA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qcwppbmRleCA5MWU2NzIzNjcw
My4uZDlmZmJjNTJlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMKQEAgLTQ1LDYg
KzQ1LDI0IEBAIFdJLkdhcmJhZ2VDb2xsZWN0aW9uID0gY2xhc3MgR2FyYmFnZUNvbGxlY3Rpb24K
ICAgICAgICAgcmV0dXJuIG5ldyBXSS5HYXJiYWdlQ29sbGVjdGlvbih0eXBlLCBwYXlsb2FkLnN0
YXJ0VGltZSwgcGF5bG9hZC5lbmRUaW1lKTsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBv
cnQKKworICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAgbGV0IHt0eXBl
LCBzdGFydFRpbWUsIGVuZFRpbWV9ID0ganNvbjsKKyAgICAgICAgcmV0dXJuIG5ldyBXSS5HYXJi
YWdlQ29sbGVjdGlvbih0eXBlLCBzdGFydFRpbWUsIGVuZFRpbWUpOworICAgIH0KKworICAgIHRv
SlNPTigpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgX190eXBlOiAiR2Fy
YmFnZUNvbGxlY3Rpb24iLAorICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAg
ICAgc3RhcnRUaW1lOiB0aGlzLnN0YXJ0VGltZSwKKyAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMu
ZW5kVGltZSwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0
eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQpAQCAtNTgsNiArNzYsNiBAQCBXSS5HYXJiYWdl
Q29sbGVjdGlvbiA9IGNsYXNzIEdhcmJhZ2VDb2xsZWN0aW9uCiB9OwogCiBXSS5HYXJiYWdlQ29s
bGVjdGlvbi5UeXBlID0gewotICAgIFBhcnRpYWw6IFN5bWJvbCgiUGFydGlhbCIpLAotICAgIEZ1
bGw6IFN5bWJvbCgiRnVsbCIpCisgICAgUGFydGlhbDogInBhcnRpYWwiLAorICAgIEZ1bGw6ICJm
dWxsIiwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvR2VvbWV0cnkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvR2VvbWV0cnkuanMKaW5kZXggMjA0Y2YzZmIwM2MuLjlmNzk4YjNhNjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0
cnkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dl
b21ldHJ5LmpzCkBAIC0yODQsNiArMjg0LDE4IEBAIFdJLlF1YWQgPSBjbGFzcyBRdWFkCiAgICAg
ICAgIHRoaXMuaGVpZ2h0ID0gTWF0aC5yb3VuZChNYXRoLnNxcnQoTWF0aC5wb3cocXVhZFswXSAt
IHF1YWRbNl0sIDIpICsgTWF0aC5wb3cocXVhZFsxXSAtIHF1YWRbN10sIDIpKSk7CiAgICAgfQog
CisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgV0kuUXVhZChqc29uKTsKKyAgICB9CisKKyAgICB0b0pT
T04oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMudG9Qcm90b2NvbCgpOworICAgIH0KKwog
ICAgIC8vIFB1YmxpYwogCiAgICAgdG9Qcm90b2NvbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVS
ZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSGVh
cEFsbG9jYXRpb25zVGltZWxpbmVSZWNvcmQuanMKaW5kZXggZDEwYzBiOTJkNmQuLjExMTQxN2Zh
ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3Jk
LmpzCkBAIC0zNiw2ICszNiwzNiBAQCBXSS5IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZCA9
IGNsYXNzIEhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkIGV4dGVuZHMgVwogICAgICAgICB0
aGlzLl9oZWFwU25hcHNob3QgPSBoZWFwU25hcHNob3Q7CiAgICAgfQogCisgICAgLy8gSW1wb3J0
IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAgICB7CisgICAgICAgIC8v
IE5PVEU6IFRoaXMganVzdCBnb2VzIHRocm91Z2ggYW5kIGdlbmVyYXRlcyBhIG5ldyBoZWFwIHNu
YXBzaG90LAorICAgICAgICAvLyBpdCBpcyBub3QgcGVyZmVjdCBidXQgZG9lcyB3aGF0IHdlIHdh
bnQuIEl0IGFzeW5jaHJvbm91c2x5IGNyZWF0ZXMKKyAgICAgICAgLy8gYSBoZWFwIHNuYXBzaG90
IGF0IHRoZSByaWdodCB0aW1lLCBhbmQgaW5zZXJ0IGl0IGludG8gdGhlIGFjdGl2ZQorICAgICAg
ICAvLyByZWNvcmRpbmcsIHdoaWNoIG9uIGFuIGltcG9ydCBzaG91bGQgYmUgdGhlIG5ld2x5IGlt
cG9ydGVkIHJlY29yZGluZy4KKyAgICAgICAgbGV0IHt0aW1lc3RhbXAsIHRpdGxlLCBzbmFwc2hv
dFN0cmluZ0RhdGF9ID0ganNvbjsKKworICAgICAgICBsZXQgd29ya2VyUHJveHkgPSBXSS5IZWFw
U25hcHNob3RXb3JrZXJQcm94eS5zaW5nbGV0b24oKTsKKyAgICAgICAgd29ya2VyUHJveHkuY3Jl
YXRlSW1wb3J0ZWRTbmFwc2hvdChzbmFwc2hvdFN0cmluZ0RhdGEsIHRpdGxlLCAoe29iamVjdElk
LCBzbmFwc2hvdDogc2VyaWFsaXplZFNuYXBzaG90fSkgPT4geworICAgICAgICAgICAgbGV0IHNu
YXBzaG90ID0gV0kuSGVhcFNuYXBzaG90UHJveHkuZGVzZXJpYWxpemUob2JqZWN0SWQsIHNlcmlh
bGl6ZWRTbmFwc2hvdCk7CisgICAgICAgICAgICBzbmFwc2hvdC5zbmFwc2hvdFN0cmluZ0RhdGEg
PSBzbmFwc2hvdFN0cmluZ0RhdGE7CisgICAgICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuaGVh
cFNuYXBzaG90QWRkZWQodGltZXN0YW1wLCBzbmFwc2hvdCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICBy
ZXR1cm4geworICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgdGltZXN0
YW1wOiB0aGlzLl90aW1lc3RhbXAsCisgICAgICAgICAgICB0aXRsZTogV0kuVGltZWxpbmVUYWJD
b250ZW50Vmlldy5kaXNwbGF5TmFtZUZvclJlY29yZCh0aGlzKSwKKyAgICAgICAgICAgIHNuYXBz
aG90U3RyaW5nRGF0YTogdGhpcy5faGVhcFNuYXBzaG90LnNuYXBzaG90U3RyaW5nRGF0YSwKKyAg
ICAgICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0aW1lc3RhbXAoKSB7
IHJldHVybiB0aGlzLl90aW1lc3RhbXA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29y
ZC5qcwppbmRleCA5NWY4YWY1YTY1Mi4uZmFhNGI2YzJlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9MYXlvdXRUaW1lbGluZVJlY29yZC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0
VGltZWxpbmVSZWNvcmQuanMKQEAgLTYxLDYgKzYxLDI5IEBAIFdJLkxheW91dFRpbWVsaW5lUmVj
b3JkID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29y
ZAogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0
aWMgZnJvbUpTT04oanNvbikKKyAgICB7CisgICAgICAgIGxldCB7ZXZlbnRUeXBlLCBzdGFydFRp
bWUsIGVuZFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlvbiwgcXVhZH0gPSBqc29u
OworICAgICAgICBxdWFkID0gcXVhZCA/IFdJLlF1YWQuZnJvbUpTT04ocXVhZCkgOiBudWxsOwor
ICAgICAgICByZXR1cm4gbmV3IFdJLkxheW91dFRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgc3Rh
cnRUaW1lLCBlbmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIHF1YWQpOwor
ICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICAvLyBGSVhNRTogQ2FsbEZyYW1l
cworICAgICAgICAvLyBGSVhNRTogU291cmNlQ29kZUxvY2F0aW9uCisKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAgICAgICAgIGV2ZW50VHlwZTog
dGhpcy5fZXZlbnRUeXBlLAorICAgICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLnN0YXJ0VGltZSwK
KyAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZSwKKyAgICAgICAgICAgIHF1YWQ6IHRo
aXMuX3F1YWQgfHwgdW5kZWZpbmVkLAorICAgICAgICB9CisgICAgfQorCiAgICAgLy8gUHVibGlj
CiAKICAgICBnZXQgZXZlbnRUeXBlKCkKQEAgLTk3LDEzICsxMjAsMTMgQEAgV0kuTGF5b3V0VGlt
ZWxpbmVSZWNvcmQgPSBjbGFzcyBMYXlvdXRUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJLlRpbWVs
aW5lUmVjb3JkCiB9OwogCiBXSS5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUgPSB7Ci0g
ICAgSW52YWxpZGF0ZVN0eWxlczogImxheW91dC10aW1lbGluZS1yZWNvcmQtaW52YWxpZGF0ZS1z
dHlsZXMiLAotICAgIFJlY2FsY3VsYXRlU3R5bGVzOiAibGF5b3V0LXRpbWVsaW5lLXJlY29yZC1y
ZWNhbGN1bGF0ZS1zdHlsZXMiLAotICAgIEludmFsaWRhdGVMYXlvdXQ6ICJsYXlvdXQtdGltZWxp
bmUtcmVjb3JkLWludmFsaWRhdGUtbGF5b3V0IiwKLSAgICBGb3JjZWRMYXlvdXQ6ICJsYXlvdXQt
dGltZWxpbmUtcmVjb3JkLWZvcmNlZC1sYXlvdXQiLAotICAgIExheW91dDogImxheW91dC10aW1l
bGluZS1yZWNvcmQtbGF5b3V0IiwKLSAgICBQYWludDogImxheW91dC10aW1lbGluZS1yZWNvcmQt
cGFpbnQiLAotICAgIENvbXBvc2l0ZTogImxheW91dC10aW1lbGluZS1yZWNvcmQtY29tcG9zaXRl
IgorICAgIEludmFsaWRhdGVTdHlsZXM6ICJpbnZhbGlkYXRlLXN0eWxlcyIsCisgICAgUmVjYWxj
dWxhdGVTdHlsZXM6ICJyZWNhbGN1bGF0ZS1zdHlsZXMiLAorICAgIEludmFsaWRhdGVMYXlvdXQ6
ICJpbnZhbGlkYXRlLWxheW91dCIsCisgICAgRm9yY2VkTGF5b3V0OiAiZm9yY2VkLWxheW91dCIs
CisgICAgTGF5b3V0OiAibGF5b3V0IiwKKyAgICBQYWludDogInBhaW50IiwKKyAgICBDb21wb3Np
dGU6ICJjb21wb3NpdGUiCiB9OwogCiBXSS5MYXlvdXRUaW1lbGluZVJlY29yZC5UeXBlSWRlbnRp
ZmllciA9ICJsYXlvdXQtdGltZWxpbmUtcmVjb3JkIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZWRpYVRpbWVsaW5lUmVjb3JkLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlhVGltZWxpbmVS
ZWNvcmQuanMKaW5kZXggODE0OWMyNDc1ZWIuLjM2MWRlZGNlNDQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVkaWFUaW1lbGluZVJlY29y
ZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVk
aWFUaW1lbGluZVJlY29yZC5qcwpAQCAtMzcsNiArMzcsMjcgQEAgV0kuTWVkaWFUaW1lbGluZVJl
Y29yZCA9IGNsYXNzIE1lZGlhVGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29y
ZAogICAgICAgICB0aGlzLl9pc0xvd1Bvd2VyID0gaXNMb3dQb3dlciB8fCBmYWxzZTsKICAgICB9
CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQor
ICAgIHsgICAgICAgIAorICAgICAgICBsZXQge2V2ZW50VHlwZSwgdGltZXN0YW1wfSA9IGpzb247
CisgICAgICAgIHJldHVybiBuZXcgV0kuTWVkaWFUaW1lbGluZVJlY29yZChldmVudFR5cGUsIHRp
bWVzdGFtcCwganNvbik7CisgICAgfQorCisgICAgdG9KU09OKCkKKyAgICB7CisgICAgICAgIC8v
IEZJWE1FOiBET01Ob2RlCisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHR5cGU6IHRo
aXMudHlwZSwKKyAgICAgICAgICAgIGV2ZW50VHlwZTogdGhpcy5fZXZlbnRUeXBlLAorICAgICAg
ICAgICAgdGltZXN0YW1wOiB0aGlzLnN0YXJ0VGltZSwKKyAgICAgICAgICAgIGRvbUV2ZW50OiB0
aGlzLl9kb21FdmVudCwKKyAgICAgICAgICAgIGlzTG93UG93ZXI6IHRoaXMuX2lzTG93UG93ZXIs
CisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgZXZlbnRUeXBl
KCkgeyByZXR1cm4gdGhpcy5fZXZlbnRUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5UHJlc3N1cmVFdmVudC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlQcmVzc3VyZUV2
ZW50LmpzCmluZGV4IDBjZmVjYTc1MWUxLi45NDBjMzY5MTRiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVByZXNzdXJlRXZlbnQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9y
eVByZXNzdXJlRXZlbnQuanMKQEAgLTUyLDYgKzUyLDIzIEBAIFdJLk1lbW9yeVByZXNzdXJlRXZl
bnQgPSBjbGFzcyBNZW1vcnlQcmVzc3VyZUV2ZW50CiAgICAgICAgIHJldHVybiBuZXcgV0kuTWVt
b3J5UHJlc3N1cmVFdmVudCh0aW1lc3RhbXAsIHNldmVyaXR5KTsKICAgICB9CiAKKyAgICAvLyBJ
bXBvcnQgLyBFeHBvcnQKKworCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAgeworICAg
ICAgICBsZXQge3RpbWVzdGFtcCwgc2V2ZXJpdHl9ID0ganNvbjsKKyAgICAgICAgcmV0dXJuIG5l
dyBXSS5NZW1vcnlQcmVzc3VyZUV2ZW50KHRpbWVzdGFtcCwgc2V2ZXJpdHkpOworICAgIH0KKwor
ICAgIHRvSlNPTigpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdGltZXN0
YW1wOiB0aGlzLl90aW1lc3RhbXAsCisgICAgICAgICAgICBzZXZlcml0eTogdGhpcy5fc2V2ZXJp
dHksCisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdGltZXN0
YW1wKCkgeyByZXR1cm4gdGhpcy5fdGltZXN0YW1wOyB9CkBAIC01OSw2ICs3Niw2IEBAIFdJLk1l
bW9yeVByZXNzdXJlRXZlbnQgPSBjbGFzcyBNZW1vcnlQcmVzc3VyZUV2ZW50CiB9OwogCiBXSS5N
ZW1vcnlQcmVzc3VyZUV2ZW50LlNldmVyaXR5ID0gewotICAgIENyaXRpY2FsOiBTeW1ib2woIkNy
aXRpY2FsIiksCi0gICAgTm9uQ3JpdGljYWw6IFN5bWJvbCgiTm9uQ3JpdGljYWwiKSwKKyAgICBD
cml0aWNhbDogImNyaXRpY2FsIiwKKyAgICBOb25Dcml0aWNhbDogIm5vbi1jcml0aWNhbCIsCiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L01lbW9yeVRpbWVsaW5lUmVjb3JkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL01lbW9yeVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDYzOTU4MTc1ZGMzLi4x
ZTM3YjlhNDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL01lbW9yeVRpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qcwpAQCAtMzQs
NiArMzQsNyBAQCBXSS5NZW1vcnlUaW1lbGluZVJlY29yZCA9IGNsYXNzIE1lbW9yeVRpbWVsaW5l
UmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKIAogICAgICAgICB0aGlzLl90aW1lc3Rh
bXAgPSB0aW1lc3RhbXA7CiAgICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBXSS5NZW1vcnlUaW1l
bGluZVJlY29yZC5tZW1vcnlDYXRlZ29yaWVzRnJvbVByb3RvY29sKGNhdGVnb3JpZXMpOworICAg
ICAgICB0aGlzLl9leHBvcnRDYXRlZ29yaWVzID0gY2F0ZWdvcmllczsKIAogICAgICAgICB0aGlz
Ll90b3RhbFNpemUgPSAwOwogICAgICAgICBmb3IgKGxldCB7c2l6ZX0gb2YgY2F0ZWdvcmllcykK
QEAgLTc5LDYgKzgwLDIzIEBAIFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTWVtb3J5
VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29yZAogICAgICAgICBdOwogICAg
IH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24p
CisgICAgeworICAgICAgICBsZXQge3RpbWVzdGFtcCwgY2F0ZWdvcmllc30gPSBqc29uOworICAg
ICAgICByZXR1cm4gbmV3IFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkKHRpbWVzdGFtcCwgY2F0ZWdv
cmllcyk7CisgICAgfQorCisgICAgdG9KU09OKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICB0aW1lc3RhbXA6IHRoaXMu
c3RhcnRUaW1lLAorICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5fZXhwb3J0Q2F0ZWdvcmll
cywKKyAgICAgICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0aW1lc3Rh
bXAoKSB7IHJldHVybiB0aGlzLl90aW1lc3RhbXA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVj
b3JkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRl
cmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuanMKaW5kZXggMTBkY2E0MjdhNjEuLjVmZDgxMDgzZjll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
UmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5qcwpA
QCAtNjksNiArNjksMjcgQEAgV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZCA9IGNsYXNz
IFJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS4KICAgICAgICAgfQogICAg
IH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24p
CisgICAgeworICAgICAgICBsZXQge3N0YXJ0VGltZSwgZW5kVGltZX0gPSBqc29uOworICAgICAg
ICBsZXQgcmVjb3JkID0gbmV3IFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQoc3RhcnRU
aW1lLCBlbmRUaW1lKTsKKyAgICAgICAgcmVjb3JkLnNldHVwRnJhbWVJbmRleCgpOworICAgICAg
ICByZXR1cm4gcmVjb3JkOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICAv
LyBGSVhNRTogZHVyYXRpb25CeVRhc2tUeXBlIGRhdGEgY2Fubm90IGJlIGNhbGN1bGF0ZWQgaWYg
dGhpcyBkb2VzIG5vdCBoYXZlIGNoaWxkcmVuLgorCisgICAgICAgIHJldHVybiB7CisgICAgICAg
ICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICBzdGFydFRpbWU6IHRoaXMuc3RhcnRU
aW1lLAorICAgICAgICAgICAgZW5kVGltZTogdGhpcy5lbmRUaW1lLAorICAgICAgICB9OworICAg
IH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IGZyYW1lSW5kZXgoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlLmpzCmlu
ZGV4IDM4YWUxZDlmNGM4Li4yMzdjMDUzMjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcwpAQCAtNjYsNiArNjYs
NyBAQCBXSS5SZXNvdXJjZSA9IGNsYXNzIFJlc291cmNlIGV4dGVuZHMgV0kuU291cmNlQ29kZQog
ICAgICAgICB0aGlzLl9zdGF0dXNUZXh0ID0gbnVsbDsKICAgICAgICAgdGhpcy5fY2FjaGVkID0g
ZmFsc2U7CiAgICAgICAgIHRoaXMuX2NhbmNlbGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2Zp
bmlzaGVkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2ZhaWxlZCA9IGZhbHNlOwogICAgICAgICB0
aGlzLl9mYWlsdXJlUmVhc29uVGV4dCA9IG51bGw7CiAgICAgICAgIHRoaXMuX3JlY2VpdmVkTmV0
d29ya0xvYWRNZXRyaWNzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZVRpbWVsaW5lUmVj
b3JkLmpzCmluZGV4IDFiNTRhNzAyYTU3Li4wOTg3MjFlMzhkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlVGltZWxpbmVSZWNv
cmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jl
c291cmNlVGltZWxpbmVSZWNvcmQuanMKQEAgLTMzLDYgKzMzLDI2IEBAIFdJLlJlc291cmNlVGlt
ZWxpbmVSZWNvcmQgPSBjbGFzcyBSZXNvdXJjZVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGlt
ZWxpbmVSZWNvCiAgICAgICAgIHRoaXMuX3Jlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV0kuUmVz
b3VyY2UuRXZlbnQuVGltZXN0YW1wc0RpZENoYW5nZSwgdGhpcy5fZGlzcGF0Y2hVcGRhdGVkRXZl
bnQsIHRoaXMpOwogICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGlj
IGZyb21KU09OKGpzb24pCisgICAgeworICAgICAgICBsZXQge2VudHJ5LCBhcmNoaXZlU3RhcnRU
aW1lfSA9IGpzb247CisgICAgICAgIGxldCBsb2NhbFJlc291cmNlID0gV0kuTG9jYWxSZXNvdXJj
ZS5mcm9tSEFSRW50cnkoZW50cnksIGFyY2hpdmVTdGFydFRpbWUpOworICAgICAgICByZXR1cm4g
bmV3IFdJLlJlc291cmNlVGltZWxpbmVSZWNvcmQobG9jYWxSZXNvdXJjZSk7CisgICAgfQorCisg
ICAgdG9KU09OKCkKKyAgICB7CisgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAiIjsKKworICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgYXJj
aGl2ZVN0YXJ0VGltZTogdGhpcy5fcmVzb3VyY2UucmVxdWVzdFNlbnRXYWxsdGltZSAtIHRoaXMu
c3RhcnRUaW1lLAorICAgICAgICAgICAgZW50cnk6IFdJLkhBUkJ1aWxkZXIuZW50cnkodGhpcy5f
cmVzb3VyY2UsIGNvbnRlbnQpLAorICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwog
CiAgICAgZ2V0IHJlc291cmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcwpp
bmRleCA1ZjU5YjBkMGJhMS4uNzdiY2EwMDQzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9TY3JpcHRUaW1lbGluZVJlY29yZC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxp
bmVSZWNvcmQuanMKQEAgLTQ4LDYgKzQ4LDMyIEBAIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkID0g
Y2xhc3MgU2NyaXB0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29yZAogICAg
ICAgICB9CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJv
bUpTT04oanNvbikKKyAgICB7CisgICAgICAgIGxldCB7ZXZlbnRUeXBlLCBzdGFydFRpbWUsIGVu
ZFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlvbiwgZGV0YWlscywgcHJvZmlsZVBh
eWxvYWR9ID0ganNvbjsKKworICAgICAgICBpZiAodHlwZW9mIGRldGFpbHMgPT09ICJvYmplY3Qi
ICYmIGRldGFpbHMuX190eXBlID09PSAiR2FyYmFnZUNvbGxlY3Rpb24iKQorICAgICAgICAgICAg
ZGV0YWlscyA9IFdJLkdhcmJhZ2VDb2xsZWN0aW9uLmZyb21KU09OKGRldGFpbHMpOworCisgICAg
ICAgIHJldHVybiBuZXcgV0kuU2NyaXB0VGltZWxpbmVSZWNvcmQoZXZlbnRUeXBlLCBzdGFydFRp
bWUsIGVuZFRpbWUsIGNhbGxGcmFtZXMsIHNvdXJjZUNvZGVMb2NhdGlvbiwgZGV0YWlscywgcHJv
ZmlsZVBheWxvYWQpOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICAvLyBG
SVhNRTogQ2FsbEZyYW1lcworICAgICAgICAvLyBGSVhNRTogU291cmNlQ29kZUxvY2F0aW9uCisK
KyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAgICAg
ICAgIGV2ZW50VHlwZTogdGhpcy5fZXZlbnRUeXBlLAorICAgICAgICAgICAgc3RhcnRUaW1lOiB0
aGlzLnN0YXJ0VGltZSwKKyAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZSwKKyAgICAg
ICAgICAgIGRldGFpbHM6IHRoaXMuX2RldGFpbHMsCisgICAgICAgIH07CisgICAgfQorCiAgICAg
Ly8gUHVibGljCiAKICAgICBnZXQgZXZlbnRUeXBlKCkKQEAgLTE4MywyMCArMjA5LDIwIEBAIFdJ
LlNjcmlwdFRpbWVsaW5lUmVjb3JkID0gY2xhc3MgU2NyaXB0VGltZWxpbmVSZWNvcmQgZXh0ZW5k
cyBXSS5UaW1lbGluZVJlY29yZAogfTsKIAogV0kuU2NyaXB0VGltZWxpbmVSZWNvcmQuRXZlbnRU
eXBlID0gewotICAgIFNjcmlwdEV2YWx1YXRlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtc2Ny
aXB0LWV2YWx1YXRlZCIsCi0gICAgQVBJU2NyaXB0RXZhbHVhdGVkOiAic2NyaXB0LXRpbWVsaW5l
LXJlY29yZC1hcGktc2NyaXB0LWV2YWx1YXRlZCIsCi0gICAgTWljcm90YXNrRGlzcGF0Y2hlZDog
InNjcmlwdC10aW1lbGluZS1yZWNvcmQtbWljcm90YXNrLWRpc3BhdGNoZWQiLAotICAgIEV2ZW50
RGlzcGF0Y2hlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtZXZlbnQtZGlzcGF0Y2hlZCIsCi0g
ICAgUHJvYmVTYW1wbGVSZWNvcmRlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtcHJvYmUtc2Ft
cGxlLXJlY29yZGVkIiwKLSAgICBUaW1lckZpcmVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC10
aW1lci1maXJlZCIsCi0gICAgVGltZXJJbnN0YWxsZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3Jk
LXRpbWVyLWluc3RhbGxlZCIsCi0gICAgVGltZXJSZW1vdmVkOiAic2NyaXB0LXRpbWVsaW5lLXJl
Y29yZC10aW1lci1yZW1vdmVkIiwKLSAgICBBbmltYXRpb25GcmFtZUZpcmVkOiAic2NyaXB0LXRp
bWVsaW5lLXJlY29yZC1hbmltYXRpb24tZnJhbWUtZmlyZWQiLAotICAgIEFuaW1hdGlvbkZyYW1l
UmVxdWVzdGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC1hbmltYXRpb24tZnJhbWUtcmVxdWVz
dGVkIiwKLSAgICBBbmltYXRpb25GcmFtZUNhbmNlbGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29y
ZC1hbmltYXRpb24tZnJhbWUtY2FuY2VsZWQiLAotICAgIE9ic2VydmVyQ2FsbGJhY2s6ICJzY3Jp
cHQtdGltZWxpbmUtcmVjb3JkLW9ic2VydmVyLWNhbGxiYWNrIiwKLSAgICBDb25zb2xlUHJvZmls
ZVJlY29yZGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC1jb25zb2xlLXByb2ZpbGUtcmVjb3Jk
ZWQiLAotICAgIEdhcmJhZ2VDb2xsZWN0ZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3JkLWdhcmJh
Z2UtY29sbGVjdGVkIiwKKyAgICBTY3JpcHRFdmFsdWF0ZWQ6ICJzY3JpcHQtZXZhbHVhdGVkIiwK
KyAgICBBUElTY3JpcHRFdmFsdWF0ZWQ6ICJhcGktc2NyaXB0LWV2YWx1YXRlZCIsCisgICAgTWlj
cm90YXNrRGlzcGF0Y2hlZDogIm1pY3JvdGFzay1kaXNwYXRjaGVkIiwKKyAgICBFdmVudERpc3Bh
dGNoZWQ6ICJldmVudC1kaXNwYXRjaGVkIiwKKyAgICBQcm9iZVNhbXBsZVJlY29yZGVkOiAicHJv
YmUtc2FtcGxlLXJlY29yZGVkIiwKKyAgICBUaW1lckZpcmVkOiAidGltZXItZmlyZWQiLAorICAg
IFRpbWVySW5zdGFsbGVkOiAidGltZXItaW5zdGFsbGVkIiwKKyAgICBUaW1lclJlbW92ZWQ6ICJ0
aW1lci1yZW1vdmVkIiwKKyAgICBBbmltYXRpb25GcmFtZUZpcmVkOiAiYW5pbWF0aW9uLWZyYW1l
LWZpcmVkIiwKKyAgICBBbmltYXRpb25GcmFtZVJlcXVlc3RlZDogImFuaW1hdGlvbi1mcmFtZS1y
ZXF1ZXN0ZWQiLAorICAgIEFuaW1hdGlvbkZyYW1lQ2FuY2VsZWQ6ICJhbmltYXRpb24tZnJhbWUt
Y2FuY2VsZWQiLAorICAgIE9ic2VydmVyQ2FsbGJhY2s6ICJvYnNlcnZlci1jYWxsYmFjayIsCisg
ICAgQ29uc29sZVByb2ZpbGVSZWNvcmRlZDogImNvbnNvbGUtcHJvZmlsZS1yZWNvcmRlZCIsCisg
ICAgR2FyYmFnZUNvbGxlY3RlZDogImdhcmJhZ2UtY29sbGVjdGVkIiwKIH07CiAKIFdJLlNjcmlw
dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5kaXNwbGF5TmFtZSA9IGZ1bmN0aW9uKGV2ZW50VHlw
ZSwgZGV0YWlscywgaW5jbHVkZURldGFpbHNJbk1haW5UaXRsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VNYXBSZXNvdXJjZS5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VNYXBS
ZXNvdXJjZS5qcwppbmRleCAwOWE4MWQ1ZmFkOC4uY2MwOGRlNTQ2M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VNYXBSZXNvdXJj
ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291
cmNlTWFwUmVzb3VyY2UuanMKQEAgLTc0LDcgKzc0LDcgQEAgV0kuU291cmNlTWFwUmVzb3VyY2Ug
PSBjbGFzcyBTb3VyY2VNYXBSZXNvdXJjZSBleHRlbmRzIFdJLlJlc291cmNlCiAgICAgICAgIHJl
dHVybiByZXNvdXJjZVVSTENvbXBvbmVudHMucGF0aC5zdWJzdHJpbmcoc291cmNlTWFwcGluZ0Jh
c2VQYXRoVVJMQ29tcG9uZW50cy5wYXRoLmxlbmd0aCwgcmVzb3VyY2VVUkxDb21wb25lbnRzLmxl
bmd0aCk7CiAgICAgfQogCi0gICAgcmVxdWVzdENvbnRlbnRGcm9tQmFja2VuZChjYWxsYmFjaykK
KyAgICByZXF1ZXN0Q29udGVudEZyb21CYWNrZW5kKCkKICAgICB7CiAgICAgICAgIC8vIFJldmVy
dCB0aGUgbWFya0FzRmluaXNoZWQgdGhhdCB3YXMgZG9uZSBpbiB0aGUgY29uc3RydWN0b3IuCiAg
ICAgICAgIHRoaXMucmV2ZXJ0TWFya0FzRmluaXNoZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZU1hcmtlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZU1hcmtlci5q
cwppbmRleCBkZTA2OWE3NTMyMy4uZGQ0N2EzNjViYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZU1hcmtlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIu
anMKQEAgLTM2LDggKzM2LDI4IEBAIFdJLlRpbWVsaW5lTWFya2VyID0gY2xhc3MgVGltZWxpbmVN
YXJrZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fZGV0YWlscyA9IGRldGFpbHMg
fHwgbnVsbDsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBm
cm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAgbGV0IHt0aW1lLCB0eXBlLCBkZXRhaWxzfSA9
IGpzb247CisgICAgICAgIHJldHVybiBuZXcgV0kuVGltZWxpbmVNYXJrZXIodGltZSwgdHlwZSwg
ZGV0YWlscyk7CisgICAgfQorCisgICAgdG9KU09OKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICB0aW1lOiB0aGlzLl90aW1lLAorICAgICAgICAgICAgdHlwZTogdGhpcy5f
dHlwZSwKKyAgICAgICAgICAgIGRldGFpbHM6IHRoaXMuX2RldGFpbHMgfHwgdW5kZWZpbmVkLAor
ICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IHR5cGUoKSB7IHJl
dHVybiB0aGlzLl90eXBlOyB9CisgICAgZ2V0IGRldGFpbHMoKSB7IHJldHVybiB0aGlzLl9kZXRh
aWxzOyB9CisKICAgICBnZXQgdGltZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fdGlt
ZTsKQEAgLTU2LDE2ICs3Niw2IEBAIFdJLlRpbWVsaW5lTWFya2VyID0gY2xhc3MgVGltZWxpbmVN
YXJrZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXSS5UaW1lbGluZU1hcmtlci5FdmVudC5UaW1lQ2hhbmdlZCk7CiAgICAgfQotCi0g
ICAgZ2V0IHR5cGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7Ci0gICAgfQot
Ci0gICAgZ2V0IGRldGFpbHMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2RldGFpbHM7
Ci0gICAgfQogfTsKIAogV0kuVGltZWxpbmVNYXJrZXIuRXZlbnQgPSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVS
ZWNvcmQuanMKaW5kZXggMjAxOWE4ZDYxNTMuLmMyMWUzZmMwZjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmQuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5l
UmVjb3JkLmpzCkBAIC00Miw2ICs0MiwzOCBAQCBXSS5UaW1lbGluZVJlY29yZCA9IGNsYXNzIFRp
bWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2NoaWxkcmVuID0g
W107CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpT
T04oanNvbikKKyAgICB7CisgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7CisgICAgICAgIGNh
c2UgV0kuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3JrOgorICAgICAgICAgICAgcmV0dXJuIFdJ
LlJlc291cmNlVGltZWxpbmVSZWNvcmQuZnJvbUpTT04oanNvbik7CisgICAgICAgIGNhc2UgV0ku
VGltZWxpbmVSZWNvcmQuVHlwZS5MYXlvdXQ6CisgICAgICAgICAgICByZXR1cm4gV0kuTGF5b3V0
VGltZWxpbmVSZWNvcmQuZnJvbUpTT04oanNvbik7CisgICAgICAgIGNhc2UgV0kuVGltZWxpbmVS
ZWNvcmQuVHlwZS5TY3JpcHQ6CisgICAgICAgICAgICByZXR1cm4gV0kuU2NyaXB0VGltZWxpbmVS
ZWNvcmQuZnJvbUpTT04oanNvbik7CisgICAgICAgIGNhc2UgV0kuVGltZWxpbmVSZWNvcmQuVHlw
ZS5SZW5kZXJpbmdGcmFtZToKKyAgICAgICAgICAgIHJldHVybiBXSS5SZW5kZXJpbmdGcmFtZVRp
bWVsaW5lUmVjb3JkLmZyb21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVj
b3JkLlR5cGUuQ1BVOgorICAgICAgICAgICAgcmV0dXJuIFdJLkNQVVRpbWVsaW5lUmVjb3JkLmZy
b21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuTWVtb3J5
OgorICAgICAgICAgICAgcmV0dXJuIFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKGpz
b24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuSGVhcEFsbG9jYXRpb25z
OgorICAgICAgICAgICAgcmV0dXJuIFdJLkhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkLmZy
b21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuTWVkaWE6
CisgICAgICAgICAgICByZXR1cm4gV0kuTWVkaWFUaW1lbGluZVJlY29yZC5mcm9tSlNPTihqc29u
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24g
VGltZWxpbmVSZWNvcmQuVHlwZTogIiArIGpzb24udHlwZSwganNvbik7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAg
ICAgICB0aHJvdyBXSS5Ob3RJbXBsZW1lbnRlZEVycm9yLnN1YmNsYXNzTXVzdE92ZXJyaWRlKCk7
CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdHlwZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNvcmRp
bmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxp
bmVSZWNvcmRpbmcuanMKaW5kZXggOWFlNzYzODQzOGIuLmQzM2ExMmQ0ZDYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVSZWNv
cmRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1RpbWVsaW5lUmVjb3JkaW5nLmpzCkBAIC0zNCw3ICszNCwxOSBAQCBXSS5UaW1lbGluZVJlY29y
ZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHRoaXMuX2Rpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7CiAgICAgICAgIHRoaXMuX2NhcHR1cmlu
ZyA9IGZhbHNlOwogICAgICAgICB0aGlzLl9yZWFkb25seSA9IGZhbHNlOworICAgICAgICB0aGlz
Ll9pbXBvcnRlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9pbnN0cnVtZW50cyA9IGluc3RydW1l
bnRzIHx8IFtdOworCisgICAgICAgIHRoaXMuX3N0YXJ0VGltZSA9IE5hTjsKKyAgICAgICAgdGhp
cy5fZW5kVGltZSA9IE5hTjsKKyAgICAgICAgdGhpcy5fZGlzY29udGludWl0aWVzID0gbnVsbDsK
KworICAgICAgICB0aGlzLl9leHBvcnREYXRhUmVjb3JkcyA9IG51bGw7CisgICAgICAgIHRoaXMu
X2V4cG9ydERhdGFNYXJrZXJzID0gbnVsbDsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YU1lbW9y
eVByZXNzdXJlRXZlbnRzID0gbnVsbDsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YVNhbXBsZVN0
YWNrVHJhY2VzID0gbnVsbDsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YVNhbXBsZUR1cmF0aW9u
cyA9IG51bGw7CisKICAgICAgICAgdGhpcy5fdG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZSA9IG5l
dyBXSS5DYWxsaW5nQ29udGV4dFRyZWUoV0kuQ2FsbGluZ0NvbnRleHRUcmVlLlR5cGUuVG9wRG93
bik7CiAgICAgICAgIHRoaXMuX2JvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlID0gbmV3IFdJLkNh
bGxpbmdDb250ZXh0VHJlZShXSS5DYWxsaW5nQ29udGV4dFRyZWUuVHlwZS5Cb3R0b21VcCk7CiAg
ICAgICAgIHRoaXMuX3RvcEZ1bmN0aW9uc1RvcERvd25DYWxsaW5nQ29udGV4dFRyZWUgPSBuZXcg
V0kuQ2FsbGluZ0NvbnRleHRUcmVlKFdJLkNhbGxpbmdDb250ZXh0VHJlZS5UeXBlLlRvcEZ1bmN0
aW9uc1RvcERvd24pOwpAQCAtNjAsMTMgKzcyLDg1IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nID0g
Y2xhc3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJu
IFdJLnNoYXJlZEFwcC5kZWJ1Z2dhYmxlVHlwZSA9PT0gV0kuRGVidWdnYWJsZVR5cGUuV2ViOwog
ICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGltcG9ydChpZGVu
dGlmaWVyLCBqc29uLCBkaXNwbGF5TmFtZSkKKyAgICB7CisgICAgICAgIGxldCB7c3RhcnRUaW1l
LCBlbmRUaW1lLCBkaXNjb250aW51aXRpZXMsIGluc3RydW1lbnRUeXBlcywgcmVjb3JkcywgbWFy
a2VycywgbWVtb3J5UHJlc3N1cmVFdmVudHMsIHNhbXBsZVN0YWNrVHJhY2VzLCBzYW1wbGVEdXJh
dGlvbnN9ID0ganNvbjsKKyAgICAgICAgbGV0IGltcG9ydGVkRGlzcGxheU5hbWUgPSBXSS5VSVN0
cmluZygiSW1wb3J0ZWQgLSAlcyIpLmZvcm1hdChkaXNwbGF5TmFtZSk7CisgICAgICAgIGxldCBp
bnN0cnVtZW50cyA9IGluc3RydW1lbnRUeXBlcy5tYXAoKHR5cGUpID0+IFdJLkluc3RydW1lbnQu
Y3JlYXRlRm9yVGltZWxpbmVUeXBlKHR5cGUpKTsKKyAgICAgICAgbGV0IHJlY29yZGluZyA9IG5l
dyBXSS5UaW1lbGluZVJlY29yZGluZyhpZGVudGlmaWVyLCBpbXBvcnRlZERpc3BsYXlOYW1lLCBp
bnN0cnVtZW50cyk7CisKKyAgICAgICAgcmVjb3JkaW5nLl9yZWFkb25seSA9IHRydWU7CisgICAg
ICAgIHJlY29yZGluZy5faW1wb3J0ZWQgPSB0cnVlOworICAgICAgICByZWNvcmRpbmcuX3N0YXJ0
VGltZSA9IHN0YXJ0VGltZTsKKyAgICAgICAgcmVjb3JkaW5nLl9lbmRUaW1lID0gZW5kVGltZTsK
KyAgICAgICAgcmVjb3JkaW5nLl9kaXNjb250aW51aXRpZXMgPSBkaXNjb250aW51aXRpZXM7CisK
KyAgICAgICAgcmVjb3JkaW5nLmluaXRpYWxpemVDYWxsaW5nQ29udGV4dFRyZWVzKHNhbXBsZVN0
YWNrVHJhY2VzLCBzYW1wbGVEdXJhdGlvbnMpOworCisgICAgICAgIGZvciAobGV0IHJlY29yZEpT
T04gb2YgcmVjb3JkcykgeworICAgICAgICAgICAgbGV0IHJlY29yZCA9IFdJLlRpbWVsaW5lUmVj
b3JkLmZyb21KU09OKHJlY29yZEpTT04pOworICAgICAgICAgICAgaWYgKHJlY29yZCkgeworICAg
ICAgICAgICAgICAgIHJlY29yZGluZy5hZGRSZWNvcmQocmVjb3JkKTsKKworICAgICAgICAgICAg
ICAgIGlmIChyZWNvcmQgaW5zdGFuY2VvZiBXSS5TY3JpcHRUaW1lbGluZVJlY29yZCkKKyAgICAg
ICAgICAgICAgICAgICAgcmVjb3JkLnByb2ZpbGVQYXlsb2FkID0gcmVjb3JkaW5nLl90b3BEb3du
Q2FsbGluZ0NvbnRleHRUcmVlLnRvQ1BVUHJvZmlsZVBheWxvYWQocmVjb3JkLnN0YXJ0VGltZSwg
cmVjb3JkLmVuZFRpbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9y
IChsZXQgbWVtb3J5UHJlc3N1cmVKU09OIG9mIG1lbW9yeVByZXNzdXJlRXZlbnRzKSB7CisgICAg
ICAgICAgICBsZXQgbWVtb3J5UHJlc3N1cmVFdmVudCA9IFdJLk1lbW9yeVByZXNzdXJlRXZlbnQu
ZnJvbUpTT04obWVtb3J5UHJlc3N1cmVKU09OKTsKKyAgICAgICAgICAgIGlmIChtZW1vcnlQcmVz
c3VyZUV2ZW50KQorICAgICAgICAgICAgICAgIHJlY29yZGluZy5hZGRNZW1vcnlQcmVzc3VyZUV2
ZW50KG1lbW9yeVByZXNzdXJlRXZlbnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIG1h
cmtlcnMgb25jZSB3ZSd2ZSB0cmFuc2l0aW9uZWQgdGhlIGFjdGl2ZSByZWNvcmRpbmcuCisgICAg
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgcmVjb3JkaW5nLl9faW1wb3J0aW5n
ID0gdHJ1ZTsKKworICAgICAgICAgICAgZm9yIChsZXQgbWFya2VySlNPTiBvZiBtYXJrZXJzKSB7
CisgICAgICAgICAgICAgICAgbGV0IG1hcmtlciA9IFdJLlRpbWVsaW5lTWFya2VyLmZyb21KU09O
KG1hcmtlckpTT04pOworICAgICAgICAgICAgICAgIGlmIChtYXJrZXIpCisgICAgICAgICAgICAg
ICAgICAgIHJlY29yZGluZy5hZGRFdmVudE1hcmtlcihtYXJrZXIpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZWNvcmRpbmcuX19pbXBvcnRpbmcgPSBmYWxzZTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgcmV0dXJuIHJlY29yZGluZzsKKyAgICB9CisKKyAgICBleHBvcnREYXRhKCkK
KyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuY2FuRXhwb3J0KCksICJBdHRlbXB0
ZWQgdG8gZXhwb3J0IGEgcmVjb3JkaW5nIHdoaWNoIHNob3VsZCBub3QgYmUgZXhwb3J0YWJsZS4i
KTsKKworICAgICAgICAvLyBGSVhNRTogT3ZlcnZpZXcgZGF0YSAoc291cmNlQ29kZVRpbWVsaW5l
c01hcCkuCisgICAgICAgIC8vIEZJWE1FOiBSZWNvcmQgaGllcmFyY2h5IChwYXJlbnQgLyBjaGls
ZCByZWxhdGlvbnNoaXApIGlzIGxvc3QuCisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IGRpc3BsYXlOYW1lOiB0aGlzLl9kaXNwbGF5TmFtZSwKKyAgICAgICAgICAgIHN0YXJ0VGltZTog
dGhpcy5fc3RhcnRUaW1lLAorICAgICAgICAgICAgZW5kVGltZTogdGhpcy5fZW5kVGltZSwKKyAg
ICAgICAgICAgIGRpc2NvbnRpbnVpdGllczogdGhpcy5fZGlzY29udGludWl0aWVzLAorICAgICAg
ICAgICAgaW5zdHJ1bWVudFR5cGVzOiB0aGlzLl9pbnN0cnVtZW50cy5tYXAoKGluc3RydW1lbnQp
ID0+IGluc3RydW1lbnQudGltZWxpbmVSZWNvcmRUeXBlKSwKKyAgICAgICAgICAgIHJlY29yZHM6
IHRoaXMuX2V4cG9ydERhdGFSZWNvcmRzLAorICAgICAgICAgICAgbWFya2VyczogdGhpcy5fZXhw
b3J0RGF0YU1hcmtlcnMsCisgICAgICAgICAgICBtZW1vcnlQcmVzc3VyZUV2ZW50czogdGhpcy5f
ZXhwb3J0RGF0YU1lbW9yeVByZXNzdXJlRXZlbnRzLAorICAgICAgICAgICAgc2FtcGxlU3RhY2tU
cmFjZXM6IHRoaXMuX2V4cG9ydERhdGFTYW1wbGVTdGFja1RyYWNlcywKKyAgICAgICAgICAgIHNh
bXBsZUR1cmF0aW9uczogdGhpcy5fZXhwb3J0RGF0YVNhbXBsZUR1cmF0aW9ucywKKyAgICAgICAg
fTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCBkaXNwbGF5TmFtZSgpIHsgcmV0
dXJuIHRoaXMuX2Rpc3BsYXlOYW1lOyB9CiAgICAgZ2V0IGlkZW50aWZpZXIoKSB7IHJldHVybiB0
aGlzLl9pZGVudGlmaWVyOyB9CiAgICAgZ2V0IHRpbWVsaW5lcygpIHsgcmV0dXJuIHRoaXMuX3Rp
bWVsaW5lczsgfQogICAgIGdldCBpbnN0cnVtZW50cygpIHsgcmV0dXJuIHRoaXMuX2luc3RydW1l
bnRzOyB9CisgICAgZ2V0IGNhcHR1cmluZygpIHsgcmV0dXJuIHRoaXMuX2NhcHR1cmluZzsgfQog
ICAgIGdldCByZWFkb25seSgpIHsgcmV0dXJuIHRoaXMuX3JlYWRvbmx5OyB9CisgICAgZ2V0IGlt
cG9ydGVkKCkgeyByZXR1cm4gdGhpcy5faW1wb3J0ZWQ7IH0KICAgICBnZXQgc3RhcnRUaW1lKCkg
eyByZXR1cm4gdGhpcy5fc3RhcnRUaW1lOyB9CiAgICAgZ2V0IGVuZFRpbWUoKSB7IHJldHVybiB0
aGlzLl9lbmRUaW1lOyB9CiAKQEAgLTExMyw5ICsxOTcsOSBAQCBXSS5UaW1lbGluZVJlY29yZGlu
ZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAotICAgIHVubG9hZGVkKCkKKyAgICB1bmxvYWRlZChpbXBvcnRp
bmcpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5pc0VtcHR5KCksICJTaG91
bGRuJ3QgdW5sb2FkIGFuIGVtcHR5IHJlY29yZGluZzsgaXQgc2hvdWxkIGJlIHJldXNlZCBpbnN0
ZWFkLiIpOworICAgICAgICBjb25zb2xlLmFzc2VydChpbXBvcnRpbmcgfHwgIXRoaXMuaXNFbXB0
eSgpLCAiU2hvdWxkbid0IHVubG9hZCBhbiBlbXB0eSByZWNvcmRpbmc7IGl0IHNob3VsZCBiZSBy
ZXVzZWQgaW5zdGVhZC4iKTsKIAogICAgICAgICB0aGlzLl9yZWFkb25seSA9IHRydWU7CiAKQEAg
LTEyNywxMCArMjExLDE3IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxpbmVS
ZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMu
X3JlYWRvbmx5LCAiQ2FuJ3QgcmVzZXQgYSByZWFkLW9ubHkgcmVjb3JkaW5nLiIpOwogCiAgICAg
ICAgIHRoaXMuX3NvdXJjZUNvZGVUaW1lbGluZXNNYXAgPSBuZXcgTWFwOworCiAgICAgICAgIHRo
aXMuX3N0YXJ0VGltZSA9IE5hTjsKICAgICAgICAgdGhpcy5fZW5kVGltZSA9IE5hTjsKICAgICAg
ICAgdGhpcy5fZGlzY29udGludWl0aWVzID0gW107CiAKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0
YVJlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YU1hcmtlcnMgPSBbXQorICAg
ICAgICB0aGlzLl9leHBvcnREYXRhTWVtb3J5UHJlc3N1cmVFdmVudHMgPSBbXTsKKyAgICAgICAg
dGhpcy5fZXhwb3J0RGF0YVNhbXBsZVN0YWNrVHJhY2VzID0gW107CisgICAgICAgIHRoaXMuX2V4
cG9ydERhdGFTYW1wbGVEdXJhdGlvbnMgPSBbXTsKKwogICAgICAgICB0aGlzLl90b3BEb3duQ2Fs
bGluZ0NvbnRleHRUcmVlLnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX2JvdHRvbVVwQ2FsbGluZ0Nv
bnRleHRUcmVlLnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX3RvcEZ1bmN0aW9uc1RvcERvd25DYWxs
aW5nQ29udGV4dFRyZWUucmVzZXQoKTsKQEAgLTE5Miw3ICsyODMsOSBAQCBXSS5UaW1lbGluZVJl
Y29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAg
ICBhZGRFdmVudE1hcmtlcihtYXJrZXIpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2NhcHR1
cmluZykKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YU1hcmtlcnMucHVzaChtYXJrZXIpOworCisg
ICAgICAgIGlmICghdGhpcy5fY2FwdHVyaW5nICYmICF0aGlzLl9faW1wb3J0aW5nKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LlRpbWVsaW5lUmVjb3JkaW5nLkV2ZW50Lk1hcmtlckFkZGVkLCB7bWFya2VyfSk7CkBAIC0yMDAs
NyArMjkzLDkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGlu
ZyBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgYWRkUmVjb3JkKHJlY29yZCkKICAgICB7Ci0gICAg
ICAgIHZhciB0aW1lbGluZSA9IHRoaXMuX3RpbWVsaW5lcy5nZXQocmVjb3JkLnR5cGUpOworICAg
ICAgICB0aGlzLl9leHBvcnREYXRhUmVjb3Jkcy5wdXNoKHJlY29yZCk7CisKKyAgICAgICAgbGV0
IHRpbWVsaW5lID0gdGhpcy5fdGltZWxpbmVzLmdldChyZWNvcmQudHlwZSk7CiAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHRpbWVsaW5lLCByZWNvcmQsIHRoaXMuX3RpbWVsaW5lcyk7CiAgICAgICAg
IGlmICghdGltZWxpbmUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNDcsNiArMzQyLDggQEAg
V0kuVGltZWxpbmVSZWNvcmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJ
Lk9iamVjdAogCiAgICAgYWRkTWVtb3J5UHJlc3N1cmVFdmVudChtZW1vcnlQcmVzc3VyZUV2ZW50
KQogICAgIHsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0YU1lbW9yeVByZXNzdXJlRXZlbnRzLnB1
c2gobWVtb3J5UHJlc3N1cmVFdmVudCk7CisKICAgICAgICAgbGV0IG1lbW9yeVRpbWVsaW5lID0g
dGhpcy5fdGltZWxpbmVzLmdldChXSS5UaW1lbGluZVJlY29yZC5UeXBlLk1lbW9yeSk7CiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KG1lbW9yeVRpbWVsaW5lLCB0aGlzLl90aW1lbGluZXMpOwogICAg
ICAgICBpZiAoIW1lbW9yeVRpbWVsaW5lKQpAQCAtMzI2LDYgKzQyMywzMCBAQCBXSS5UaW1lbGlu
ZVJlY29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIH0KICAgICB9CiAKKyAgICBpbml0aWFsaXplQ2FsbGluZ0NvbnRleHRUcmVlcyhzdGFj
a1RyYWNlcywgc2FtcGxlRHVyYXRpb25zKQorICAgIHsKKyAgICAgICAgdGhpcy5fZXhwb3J0RGF0
YVNhbXBsZVN0YWNrVHJhY2VzLmNvbmNhdChzdGFja1RyYWNlcyk7CisgICAgICAgIHRoaXMuX2V4
cG9ydERhdGFTYW1wbGVEdXJhdGlvbnMuY29uY2F0KHNhbXBsZUR1cmF0aW9ucyk7CisKKyAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFja1RyYWNlcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgdGhpcy5fdG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNr
VHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7CisgICAgICAgICAgICB0
aGlzLl9ib3R0b21VcENhbGxpbmdDb250ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNrVHJhY2Uo
c3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7CisgICAgICAgICAgICB0aGlzLl90
b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tU
cmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRpb25zW2ldKTsKKyAgICAgICAgICAgIHRo
aXMuX3RvcEZ1bmN0aW9uc0JvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlLnVwZGF0ZVRyZWVXaXRo
U3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRpb25zW2ldKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGNhbkV4cG9ydCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fY2Fw
dHVyaW5nKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChpc05hTih0
aGlzLl9zdGFydFRpbWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF9rZXlGb3JSZWNvcmQo
cmVjb3JkKQpAQCAtMzczLDMgKzQ5NCw1IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nLkV2ZW50ID0g
ewogV0kuVGltZWxpbmVSZWNvcmRpbmcuaXNMZWdhY3kgPSB1bmRlZmluZWQ7CiBXSS5UaW1lbGlu
ZVJlY29yZGluZy5UaW1lc3RhbXBUaHJlc2hvbGRGb3JMZWdhY3lSZWNvcmRDb252ZXJzaW9uID0g
MTAwMDAwMDA7IC8vIFNvbWUgdmFsdWUgbm90IG5lYXIgemVyby4KIFdJLlRpbWVsaW5lUmVjb3Jk
aW5nLlRpbWVzdGFtcFRocmVzaG9sZEZvckxlZ2FjeUFzc3VtZWRNaWxsaXNlY29uZHMgPSAxNDIw
MDk5MjAwMDAwOyAvLyBEYXRlLnBhcnNlKCJKYW4gMSwgMjAxNSIpLiBNaWxsaXNlY29uZHMgc2lu
Y2UgZXBvY2guCisKK1dJLlRpbWVsaW5lUmVjb3JkaW5nLlNlcmlhbGl6YXRpb25WZXJzaW9uID0g
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NQVVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NQVVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwppbmRleCBhNTJhZjVk
ZjQ3MC4uZWYxMzM3ZmRmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NQVVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DUFVUaW1lbGluZU92ZXJ2aWV3R3Jh
cGguanMKQEAgLTUxLDYgKzUxLDkgQEAgV0kuQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xh
c3MgQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuVGltZWxpbmUKICAgICAgICAg
dGhpcy5fbGFzdFNlbGVjdGVkUmVjb3JkSW5MYXlvdXQgPSBudWxsOwogCiAgICAgICAgIHRoaXMu
cmVzZXQoKTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmQgb2YgdGhpcy5fY3B1VGltZWxpbmUu
cmVjb3JkcykKKyAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVjb3JkKTsKICAgICB9
CiAKICAgICAvLyBTdGF0aWMKQEAgLTIxMiw4ICsyMTUsMTMgQEAgV0kuQ1BVVGltZWxpbmVPdmVy
dmlld0dyYXBoID0gY2xhc3MgQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuVGlt
ZWxpbmUKICAgICB7CiAgICAgICAgIGxldCBjcHVUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRhdGEu
cmVjb3JkOwogCisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQoY3B1VGltZWxpbmVSZWNvcmQp
OworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBfcHJvY2Vzc1Jl
Y29yZChjcHVUaW1lbGluZVJlY29yZCkKKyAgICB7CiAgICAgICAgIHRoaXMuX21heFVzYWdlID0g
TWF0aC5tYXgodGhpcy5fbWF4VXNhZ2UsIGNwdVRpbWVsaW5lUmVjb3JkLnVzYWdlKTsKLQotICAg
ICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5l
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBB
bGxvY2F0aW9uc1RpbWVsaW5lVmlldy5qcwppbmRleCAwZTkyMDc4NGIxZS4uNGM5NjI0NTBmZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hl
YXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcuanMKQEAgLTIx
OSwyMiArMjE5LDYgQEAgV0kuSGVhcEFsbG9jYXRpb25zVGltZWxpbmVWaWV3ID0gY2xhc3MgSGVh
cEFsbG9jYXRpb25zVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGkKICAgICAgICAgcmV0dXJuIGNv
bXBvbmVudHMuY29uY2F0KHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50
Vmlldy5zZWxlY3Rpb25QYXRoQ29tcG9uZW50cyk7CiAgICAgfQogCi0gICAgZ2V0IHN1cHBvcnRz
U2F2ZSgpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc2hvd2luZ1NuYXBzaG90TGlzdCkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMuX2NvbnRlbnRWaWV3
Q29udGFpbmVyLmN1cnJlbnRDb250ZW50VmlldykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuY3VycmVudENvbnRl
bnRWaWV3LnN1cHBvcnRzU2F2ZTsKLSAgICB9Ci0KLSAgICBnZXQgc2F2ZURhdGEoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50
Vmlldy5zYXZlRGF0YTsKLSAgICB9Ci0KICAgICBzZWxlY3RSZWNvcmQocmVjb3JkKQogICAgIHsK
ICAgICAgICAgaWYgKHJlY29yZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBTbmFwc2hvdENvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90Q29udGVudFZpZXcu
anMKaW5kZXggNWYwNzk3MWMzNDkuLmRkYTNhYzhiODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3RDb250ZW50Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwU25h
cHNob3RDb250ZW50Vmlldy5qcwpAQCAtNjUsMTYgKzY1LDYgQEAgV0kuSGVhcFNuYXBzaG90Q29u
dGVudFZpZXcgPSBjbGFzcyBIZWFwU25hcHNob3RDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRWaWUKICAgICAgICAgcmV0dXJuIFtdOwogICAgIH0KIAotICAgIGdldCBzdXBwb3J0c1NhdmUo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2Vv
ZiBXSS5IZWFwU25hcHNob3RQcm94eTsKLSAgICB9Ci0KLSAgICBnZXQgc2F2ZURhdGEoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHtjdXN0b21TYXZlSGFuZGxlcjogKCkgPT4geyB0aGlzLl9leHBv
cnRTbmFwc2hvdCgpOyB9fTsKLSAgICB9Ci0KICAgICBzaG93bigpCiAgICAgewogICAgICAgICBz
dXBlci5zaG93bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFw
aC5jc3MKaW5kZXggODkzNTQ4NzE2YTAuLjhkZTRkMmJjODFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3
R3JhcGguY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jc3MKQEAgLTIzLDE1ICsyMywxNSBAQAogICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS50aW1lbGluZS1vdmVydmll
dy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93IHsKKy50aW1lbGluZS1vdmVydmlldy1ncmFwaC5s
YXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgtcm93IHsKICAgICBoZWlnaHQ6IDE2cHg7CiB9CiAKLS50
aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5lLXJl
Y29yZC1iYXIgeworLnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBoLmxheW91dC1vdmVydmlldyA+IC5n
cmFwaC1yb3cgPiAudGltZWxpbmUtcmVjb3JkLWJhciB7CiAgICAgaGVpZ2h0OiAxMnB4OwogICAg
IG1hcmdpbi10b3A6IDRweDsKIH0KIAotLnRpbWVsaW5lLW92ZXJ2aWV3LWdyYXBoLmxheW91dCA+
IC5ncmFwaC1yb3cgPiAudGltZWxpbmUtcmVjb3JkLWJhciA+IC5zZWdtZW50IHsKKy50aW1lbGlu
ZS1vdmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5l
LXJlY29yZC1iYXIgPiAuc2VnbWVudCB7CiAgICAgYm9yZGVyLXJhZGl1czogMnB4OwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0
VGltZWxpbmVPdmVydmlld0dyYXBoLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCmluZGV4IGU5ODAzMGEz
NjEzLi42NDJkMDBiZThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZp
ZXdHcmFwaC5qcwpAQCAtMjksMTIgKzI5LDE1IEBAIFdJLkxheW91dFRpbWVsaW5lT3ZlcnZpZXdH
cmFwaCA9IGNsYXNzIExheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLlRpCiAg
ICAgewogICAgICAgICBzdXBlcih0aW1lbGluZU92ZXJ2aWV3KTsKIAotICAgICAgICB0aGlzLmVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgibGF5b3V0Iik7CisgICAgICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKCJsYXlvdXQtb3ZlcnZpZXciKTsKIAogICAgICAgICB0aGlzLl9sYXlvdXRUaW1l
bGluZSA9IHRpbWVsaW5lOwogICAgICAgICB0aGlzLl9sYXlvdXRUaW1lbGluZS5hZGRFdmVudExp
c3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlY29yZEFkZGVkLCB0aGlzLl9sYXlvdXRUaW1lbGlu
ZVJlY29yZEFkZGVkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLnJlc2V0KCk7CisKKyAgICAgICAg
Zm9yIChsZXQgcmVjb3JkIG9mIHRoaXMuX2xheW91dFRpbWVsaW5lLnJlY29yZHMpCisgICAgICAg
ICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAgICAgLy8gUHVibGlj
CkBAIC0xMTgsMTQgKzEyMSwxOSBAQCBXSS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBj
bGFzcyBMYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS5UaQogCiAgICAgX2xh
eW91dFRpbWVsaW5lUmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgbGF5b3V0
VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgbGV0IGxheW91dFRp
bWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGxheW91dFRpbWVsaW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuTGF5b3V0VGltZWxpbmVSZWNvcmQp
OwogCisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQobGF5b3V0VGltZWxpbmVSZWNvcmQpOwor
CisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBfcHJvY2Vzc1JlY29y
ZChsYXlvdXRUaW1lbGluZVJlY29yZCkKKyAgICB7CiAgICAgICAgIGlmIChsYXlvdXRUaW1lbGlu
ZVJlY29yZC5ldmVudFR5cGUgPT09IFdJLkxheW91dFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZS5Q
YWludCB8fCBsYXlvdXRUaW1lbGluZVJlY29yZC5ldmVudFR5cGUgPT09IFdJLkxheW91dFRpbWVs
aW5lUmVjb3JkLkV2ZW50VHlwZS5Db21wb3NpdGUpCiAgICAgICAgICAgICB0aGlzLl90aW1lbGlu
ZVBhaW50UmVjb3JkUm93LnJlY29yZHMucHVzaChsYXlvdXRUaW1lbGluZVJlY29yZCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lTGF5b3V0UmVjb3JkUm93LnJlY29y
ZHMucHVzaChsYXlvdXRUaW1lbGluZVJlY29yZCk7Ci0KLSAgICAgICAgdGhpcy5uZWVkc0xheW91
dCgpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMKaW5kZXggYzExNzI0
MGNjOTEuLjhmMzc2MTM1NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzCkBAIC05
OCw2ICs5OCw5IEBAIFdJLkxheW91dFRpbWVsaW5lVmlldyA9IGNsYXNzIExheW91dFRpbWVsaW5l
VmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICB0aW1lbGluZS5hZGRFdmVudExp
c3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlY29yZEFkZGVkLCB0aGlzLl9sYXlvdXRUaW1lbGlu
ZVJlY29yZEFkZGVkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtd
OworCisgICAgICAgIGZvciAobGV0IHJlY29yZCBvZiB0aW1lbGluZS5yZWNvcmRzKQorICAgICAg
ICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFB1Ymxp
YwpAQCAtMjMxLDE2ICsyMzQsMjEgQEAgV0kuTGF5b3V0VGltZWxpbmVWaWV3ID0gY2xhc3MgTGF5
b3V0VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAKICAgICBfbGF5b3V0VGlt
ZWxpbmVSZWNvcmRBZGRlZChldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBsYXlvdXRUaW1lbGlu
ZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOworICAgICAgICBsZXQgbGF5b3V0VGltZWxpbmVS
ZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAgICAgICAgY29uc29sZS5hc3NlcnQobGF5b3V0
VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5MYXlvdXRUaW1lbGluZVJlY29yZCk7CiAKKyAg
ICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChsYXlvdXRUaW1lbGluZVJlY29yZCk7CisKKyAgICAg
ICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF9wcm9jZXNzUmVjb3JkKGxheW91
dFRpbWVsaW5lUmVjb3JkKQorICAgIHsKICAgICAgICAgLy8gT25seSBhZGQgdG9wLWxldmVsIHJl
Y29yZHMsIHRvIGF2b2lkIHByb2Nlc3NpbmcgY2hpbGQgcmVjb3JkcyBtdWx0aXBsZSB0aW1lcy4K
ICAgICAgICAgaWYgKGxheW91dFRpbWVsaW5lUmVjb3JkLnBhcmVudCBpbnN0YW5jZW9mIFdJLkxh
eW91dFRpbWVsaW5lUmVjb3JkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMu
X3BlbmRpbmdSZWNvcmRzLnB1c2gobGF5b3V0VGltZWxpbmVSZWNvcmQpOwotCi0gICAgICAgIHRo
aXMubmVlZHNMYXlvdXQoKTsKICAgICB9CiAKICAgICBfdXBkYXRlSGlnaGxpZ2h0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lZGlhVGlt
ZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TWVkaWFUaW1lbGluZVZpZXcuanMKaW5kZXggM2I0MDJkY2Q1ZjguLmMxNjQ4YjIzZjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZWRpYVRp
bWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9NZWRpYVRpbWVsaW5lVmlldy5qcwpAQCAtNzksNiArNzksOSBAQCBXSS5NZWRpYVRpbWVs
aW5lVmlldyA9IGNsYXNzIE1lZGlhVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3
CiAgICAgICAgIHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxpbmUuRXZlbnQuUmVj
b3JkQWRkZWQsIHRoaXMuX2hhbmRsZVJlY29yZEFkZGVkLCB0aGlzKTsKIAogICAgICAgICB0aGlz
Ll9wZW5kaW5nUmVjb3JkcyA9IFtdOworCisgICAgICAgIGZvciAobGV0IHJlY29yZCBvZiB0aW1l
bGluZS5yZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChyZWNvcmQpOwog
ICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMTkxLDE0ICsxOTQsMTkgQEAgV0kuTWVkaWFUaW1l
bGluZVZpZXcgPSBjbGFzcyBNZWRpYVRpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmll
dwogCiAgICAgX2hhbmRsZVJlY29yZEFkZGVkKGV2ZW50KQogICAgIHsKLSAgICAgICAgbGV0IHJl
Y29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOwotICAgICAgICBjb25zb2xlLmFzc2VydChyZWNvcmQg
aW5zdGFuY2VvZiBXSS5NZWRpYVRpbWVsaW5lUmVjb3JkKTsKKyAgICAgICAgbGV0IG1lZGlhVGlt
ZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
bWVkaWFUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLk1lZGlhVGltZWxpbmVSZWNvcmQpOwog
Ci0gICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gocmVjb3JkKTsKKyAgICAgICAgdGhp
cy5fcHJvY2Vzc1JlY29yZChtZWRpYVRpbWVsaW5lUmVjb3JkKTsKIAogICAgICAgICB0aGlzLm5l
ZWRzTGF5b3V0KCk7CiAgICAgfQogCisgICAgX3Byb2Nlc3NSZWNvcmQobWVkaWFUaW1lbGluZVJl
Y29yZCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gobWVkaWFUaW1l
bGluZVJlY29yZCk7CisgICAgfQorCiAgICAgX2hhbmRsZVNlbGVjdGlvblBhdGhDb21wb25lbnRT
aWJsaW5nU2VsZWN0ZWQoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgcGF0aENvbXBvbmVudCA9
IGV2ZW50LmRhdGEucGF0aENvbXBvbmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5l
T3ZlcnZpZXdHcmFwaC5qcwppbmRleCBjMTg0Y2RmNjRhZC4uNDk2MDkyZmZmNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVs
aW5lT3ZlcnZpZXdHcmFwaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKQEAgLTUyLDYgKzUyLDkg
QEAgV0kuTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTWVtb3J5VGltZWxpbmVP
dmVydmlld0dyYXBoIGV4dGVuZHMgV0kuVGkKICAgICAgICAgdGhpcy5fbWVtb3J5UHJlc3N1cmVN
YXJrZXJFbGVtZW50cyA9IFtdOwogCiAgICAgICAgIHRoaXMucmVzZXQoKTsKKworICAgICAgICBm
b3IgKGxldCByZWNvcmQgb2YgdGhpcy5fbWVtb3J5VGltZWxpbmUucmVjb3JkcykKKyAgICAgICAg
ICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVjb3JkKTsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0
ZWQKQEAgLTI0NCw3ICsyNDcsMTUgQEAgV0kuTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoID0g
Y2xhc3MgTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuVGkKICAgICBfbWVt
b3J5VGltZWxpbmVSZWNvcmRBZGRlZChldmVudCkKICAgICB7CiAgICAgICAgIGxldCBtZW1vcnlU
aW1lbGluZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOworICAgICAgICBjb25zb2xlLmFzc2Vy
dChtZW1vcnlUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLk1lbW9yeVRpbWVsaW5lUmVjb3Jk
KTsKIAorICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKG1lbW9yeVRpbWVsaW5lUmVjb3JkKTsK
KworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgX3Byb2Nlc3NSZWNv
cmQobWVtb3J5VGltZWxpbmVSZWNvcmQpCisgICAgewogICAgICAgICB0aGlzLl9tYXhTaXplID0g
TWF0aC5tYXgodGhpcy5fbWF4U2l6ZSwgbWVtb3J5VGltZWxpbmVSZWNvcmQudG90YWxTaXplKTsK
IAogICAgICAgICBpZiAoIXRoaXMuX2RpZEluaXRpYWxpemVDYXRlZ29yaWVzKSB7CkBAIC0yNTQs
OCArMjY1LDYgQEAgV0kuTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTWVtb3J5
VGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuVGkKICAgICAgICAgICAgICAgICB0eXBl
cy5wdXNoKGNhdGVnb3J5LnR5cGUpOwogICAgICAgICAgICAgdGhpcy5fY2hhcnQuaW5pdGlhbGl6
ZVNlY3Rpb25zKHR5cGVzKTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMubmVlZHNMYXlvdXQo
KTsKICAgICB9CiAKICAgICBfbWVtb3J5VGltZWxpbmVNZW1vcnlQcmVzc3VyZUV2ZW50QWRkZWQo
ZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9NZW1vcnlUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZVZpZXcuanMKaW5kZXggNDQyYjdkYTdkMjUuLjUx
NzI3NzBmNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9NZW1vcnlUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTWVtb3J5VGltZWxpbmVWaWV3LmpzCkBAIC05Niw2ICs5Niw5
IEBAIFdJLk1lbW9yeVRpbWVsaW5lVmlldyA9IGNsYXNzIE1lbW9yeVRpbWVsaW5lVmlldyBleHRl
bmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICB0aW1lbGluZS5hZGRFdmVudExpc3RlbmVyKFdJ
LlRpbWVsaW5lLkV2ZW50LlJlY29yZEFkZGVkLCB0aGlzLl9tZW1vcnlUaW1lbGluZVJlY29yZEFk
ZGVkLCB0aGlzKTsKIAogICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2Vtb3ZlIiwgdGhpcy5faGFuZGxlR3JhcGhNb3VzZU1vdmUuYmluZCh0aGlzKSk7CisKKyAgICAg
ICAgZm9yIChsZXQgcmVjb3JkIG9mIHRpbWVsaW5lLnJlY29yZHMpCisgICAgICAgICAgICB0aGlz
Ll9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC00NTIs
MTIgKzQ1NSwxNyBAQCBXSS5NZW1vcnlUaW1lbGluZVZpZXcgPSBjbGFzcyBNZW1vcnlUaW1lbGlu
ZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcKICAgICAgICAgbGV0IG1lbW9yeVRpbWVsaW5l
UmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1lbW9y
eVRpbWVsaW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuTWVtb3J5VGltZWxpbmVSZWNvcmQpOwogCi0g
ICAgICAgIGlmICghdGhpcy5fZGlkSW5pdGlhbGl6ZUNhdGVnb3JpZXMpCi0gICAgICAgICAgICB0
aGlzLl9pbml0aWFsaXplQ2F0ZWdvcnlWaWV3cyhtZW1vcnlUaW1lbGluZVJlY29yZCk7Ci0KLSAg
ICAgICAgdGhpcy5fbWF4U2l6ZSA9IE1hdGgubWF4KHRoaXMuX21heFNpemUsIG1lbW9yeVRpbWVs
aW5lUmVjb3JkLnRvdGFsU2l6ZSk7CisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQobWVtb3J5
VGltZWxpbmVSZWNvcmQpOwogCiAgICAgICAgIGlmIChtZW1vcnlUaW1lbGluZVJlY29yZC5zdGFy
dFRpbWUgPj0gdGhpcy5zdGFydFRpbWUgJiYgbWVtb3J5VGltZWxpbmVSZWNvcmQuZW5kVGltZSA8
PSB0aGlzLmVuZFRpbWUpCiAgICAgICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQor
CisgICAgX3Byb2Nlc3NSZWNvcmQobWVtb3J5VGltZWxpbmVSZWNvcmQpCisgICAgeworICAgICAg
ICBpZiAoIXRoaXMuX2RpZEluaXRpYWxpemVDYXRlZ29yaWVzKQorICAgICAgICAgICAgdGhpcy5f
aW5pdGlhbGl6ZUNhdGVnb3J5Vmlld3MobWVtb3J5VGltZWxpbmVSZWNvcmQpOworCisgICAgICAg
IHRoaXMuX21heFNpemUgPSBNYXRoLm1heCh0aGlzLl9tYXhTaXplLCBtZW1vcnlUaW1lbGluZVJl
Y29yZC50b3RhbFNpemUpOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVs
aW5lT3ZlcnZpZXdHcmFwaC5qcwppbmRleCA3NGQ5NGFiMGYzMy4uMzI4M2Y5MzJlMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtU
aW1lbGluZU92ZXJ2aWV3R3JhcGguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwpAQCAtMzYsNiAr
MzYsOSBAQCBXSS5OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTmV0d29ya1Rp
bWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLgogICAgICAgICB0aW1lbGluZS5hZGRFdmVu
dExpc3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlRpbWVzVXBkYXRlZCwgdGhpcy5uZWVkc0xheW91
dCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5yZXNldCgpOworCisgICAgICAgIGZvciAobGV0IHJl
Y29yZCBvZiB0aW1lbGluZS5yZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29y
ZChyZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtNDcsMTIgKzUwLDEyIEBAIFdJ
Lk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBjbGFzcyBOZXR3b3JrVGltZWxpbmVPdmVy
dmlld0dyYXBoIGV4dGVuZHMgV0kuCiAgICAgICAgIHRoaXMuX25leHREdW1wUm93ID0gMDsKICAg
ICAgICAgdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlkUm93cyA9IFtdOwogCi0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5NYXhpbXVtUm93
Q291bnQ7ICsraSkKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXSS5OZXR3b3JrVGltZWxp
bmVPdmVydmlld0dyYXBoLk1heGltdW1Sb3dDb3VudDsgKytpKQogICAgICAgICAgICAgdGhpcy5f
dGltZWxpbmVSZWNvcmRHcmlkUm93cy5wdXNoKFtdKTsKIAogICAgICAgICB0aGlzLmVsZW1lbnQu
cmVtb3ZlQ2hpbGRyZW4oKTsKIAotICAgICAgICBmb3IgKHZhciByb3dSZWNvcmRzIG9mIHRoaXMu
X3RpbWVsaW5lUmVjb3JkR3JpZFJvd3MpIHsKKyAgICAgICAgZm9yIChsZXQgcm93UmVjb3JkcyBv
ZiB0aGlzLl90aW1lbGluZVJlY29yZEdyaWRSb3dzKSB7CiAgICAgICAgICAgICByb3dSZWNvcmRz
Ll9fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgICAg
cm93UmVjb3Jkcy5fX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiZ3JhcGgtcm93Iik7CiAgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQocm93UmVjb3Jkcy5fX2VsZW1lbnQpOwpAQCAt
MTA2LDIxICsxMDksMjQgQEAgV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNz
IE5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS4KIAogICAgIF9uZXR3b3Jr
VGltZWxpbmVSZWNvcmRBZGRlZChldmVudCkKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZVRp
bWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CisgICAgICAgIGxldCByZXNvdXJjZVRp
bWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHJlc291cmNlVGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZVRpbWVsaW5lUmVj
b3JkKTsKIAotICAgICAgICBmdW5jdGlvbiBjb21wYXJlQnlTdGFydFRpbWUoYSwgYikKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGEuc3RhcnRUaW1lIC0gYi5zdGFydFRpbWU7Ci0gICAg
ICAgIH0KKyAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChyZXNvdXJjZVRpbWVsaW5lUmVjb3Jk
KTsKIAorICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgX3Byb2Nlc3NS
ZWNvcmQocmVzb3VyY2VUaW1lbGluZVJlY29yZCkKKyAgICB7CisgICAgICAgIGxldCBjb21wYXJl
QnlTdGFydFRpbWUgPSAoYSwgYikgPT4gYS5zdGFydFRpbWUgLSBiLnN0YXJ0VGltZTsKICAgICAg
ICAgbGV0IG1pbmltdW1CYXJQYWRkaW5nVGltZSA9IFdJLlRpbWVsaW5lT3ZlcnZpZXcuTWluaW11
bUR1cmF0aW9uUGVyUGl4ZWwgKiAoV0kuVGltZWxpbmVSZWNvcmRCYXIuTWluaW11bVdpZHRoUGl4
ZWxzICsgV0kuVGltZWxpbmVSZWNvcmRCYXIuTWluaW11bU1hcmdpblBpeGVscyk7CiAKICAgICAg
ICAgLy8gVHJ5IHRvIGZpbmQgYSByb3cgdGhhdCBoYXMgcm9vbSBhbmQgZG9lcyBub3Qgb3Zlcmxh
cCBhIHByZXZpb3VzIHJlY29yZC4KLSAgICAgICAgdmFyIGZvdW5kUm93Rm9yUmVjb3JkID0gZmFs
c2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlk
Um93cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJvd1JlY29yZHMgPSB0aGlzLl90
aW1lbGluZVJlY29yZEdyaWRSb3dzW2ldOwotICAgICAgICAgICAgdmFyIGxhc3RSZWNvcmQgPSBy
b3dSZWNvcmRzLmxhc3RWYWx1ZTsKKyAgICAgICAgbGV0IGZvdW5kUm93Rm9yUmVjb3JkID0gZmFs
c2U7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlk
Um93cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IHJvd1JlY29yZHMgPSB0aGlzLl90
aW1lbGluZVJlY29yZEdyaWRSb3dzW2ldOworICAgICAgICAgICAgbGV0IGxhc3RSZWNvcmQgPSBy
b3dSZWNvcmRzLmxhc3RWYWx1ZTsKIAogICAgICAgICAgICAgaWYgKCFsYXN0UmVjb3JkIHx8IGxh
c3RSZWNvcmQuZW5kVGltZSArIG1pbmltdW1CYXJQYWRkaW5nVGltZSA8PSByZXNvdXJjZVRpbWVs
aW5lUmVjb3JkLnN0YXJ0VGltZSkgewogICAgICAgICAgICAgICAgIGluc2VydE9iamVjdEludG9T
b3J0ZWRBcnJheShyZXNvdXJjZVRpbWVsaW5lUmVjb3JkLCByb3dSZWNvcmRzLCBjb21wYXJlQnlT
dGFydFRpbWUpOwpAQCAtMTMyLDkgKzEzOCw5IEBAIFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3
R3JhcGggPSBjbGFzcyBOZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuCiAK
ICAgICAgICAgaWYgKCFmb3VuZFJvd0ZvclJlY29yZCkgewogICAgICAgICAgICAgLy8gVHJ5IHRv
IGZpbmQgYSByb3cgdGhhdCBkb2VzIG5vdCBvdmVybGFwIGEgcHJldmlvdXMgcmVjb3JkJ3MgYWN0
aXZlIHRpbWUsIGJ1dCBpdCBjYW4gb3ZlcmxhcCB0aGUgaW5hY3RpdmUgdGltZS4KLSAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlkUm93cy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciByb3dSZWNvcmRzID0gdGhpcy5fdGltZWxp
bmVSZWNvcmRHcmlkUm93c1tpXTsKLSAgICAgICAgICAgICAgICB2YXIgbGFzdFJlY29yZCA9IHJv
d1JlY29yZHMubGFzdFZhbHVlOworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlz
Ll90aW1lbGluZVJlY29yZEdyaWRSb3dzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAg
bGV0IHJvd1JlY29yZHMgPSB0aGlzLl90aW1lbGluZVJlY29yZEdyaWRSb3dzW2ldOworICAgICAg
ICAgICAgICAgIGxldCBsYXN0UmVjb3JkID0gcm93UmVjb3Jkcy5sYXN0VmFsdWU7CiAgICAgICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQobGFzdFJlY29yZCk7CiAKICAgICAgICAgICAgICAgICBp
ZiAobGFzdFJlY29yZC5hY3RpdmVTdGFydFRpbWUgKyBtaW5pbXVtQmFyUGFkZGluZ1RpbWUgPD0g
cmVzb3VyY2VUaW1lbGluZVJlY29yZC5zdGFydFRpbWUpIHsKQEAgLTE1Miw4ICsxNTgsNiBAQCBX
SS5OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTmV0d29ya1RpbWVsaW5lT3Zl
cnZpZXdHcmFwaCBleHRlbmRzIFdJLgogICAgICAgICAgICAgICAgIHRoaXMuX25leHREdW1wUm93
ID0gMDsKICAgICAgICAgICAgIGluc2VydE9iamVjdEludG9Tb3J0ZWRBcnJheShyZXNvdXJjZVRp
bWVsaW5lUmVjb3JkLCB0aGlzLl90aW1lbGluZVJlY29yZEdyaWRSb3dzW3RoaXMuX25leHREdW1w
Um93KytdLCBjb21wYXJlQnlTdGFydFRpbWUpOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5u
ZWVkc0xheW91dCgpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3Lmpz
CmluZGV4IGY2NWE0OTVjZmIzLi41YWViNTA0ZTNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxp
bmVWaWV3LmpzCkBAIC0xMzYsNiArMTM2LDkgQEAgV0kuTmV0d29ya1RpbWVsaW5lVmlldyA9IGNs
YXNzIE5ldHdvcmtUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcKIAogICAgICAg
ICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtdOwogICAgICAgICB0aGlzLl9yZXNvdXJjZURhdGFH
cmlkTm9kZU1hcCA9IG5ldyBNYXA7CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkIG9mIHRpbWVs
aW5lLnJlY29yZHMpCisgICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAg
ICAgfQogCiAgICAgLy8gUHVibGljCkBAIC0yNjcsMTEgKzI3MCwxNiBAQCBXSS5OZXR3b3JrVGlt
ZWxpbmVWaWV3ID0gY2xhc3MgTmV0d29ya1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5l
VmlldwogCiAgICAgX25ldHdvcmtUaW1lbGluZVJlY29yZEFkZGVkKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgdmFyIHJlc291cmNlVGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAg
ICAgICAgbGV0IHJlc291cmNlVGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQocmVzb3VyY2VUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJ
LlJlc291cmNlVGltZWxpbmVSZWNvcmQpOwogCi0gICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRz
LnB1c2gocmVzb3VyY2VUaW1lbGluZVJlY29yZCk7CisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNv
cmQocmVzb3VyY2VUaW1lbGluZVJlY29yZCk7CiAKICAgICAgICAgdGhpcy5uZWVkc0xheW91dCgp
OwogICAgIH0KKworICAgIF9wcm9jZXNzUmVjb3JkKHJlc291cmNlVGltZWxpbmVSZWNvcmQpCisg
ICAgeworICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNoKHJlc291cmNlVGltZWxpbmVS
ZWNvcmQpOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL092ZXJ2aWV3VGltZWxpbmVWaWV3LmpzCmluZGV4
IGE4OTViNzdmNTEyLi5lOGNlZmU4YjU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZp
ZXcuanMKQEAgLTUyLDcgKzUyLDggQEAgV0kuT3ZlcnZpZXdUaW1lbGluZVZpZXcgPSBjbGFzcyBP
dmVydmlld1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAgICAgICB0aGlz
Ll90aW1lbGluZVJ1bGVyLmFkZE1hcmtlcih0aGlzLl9jdXJyZW50VGltZU1hcmtlcik7CiAKICAg
ICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm92ZXJ2aWV3Iik7Ci0gICAgICAgIHRo
aXMuYWRkU3Vidmlldyh0aGlzLl9kYXRhR3JpZCk7CisgICAgICAgIGlmICghdGhpcy5fcmVjb3Jk
aW5nLmltcG9ydGVkKQorICAgICAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX2RhdGFHcmlk
KTsKIAogICAgICAgICB0aGlzLl9uZXR3b3JrVGltZWxpbmUgPSByZWNvcmRpbmcudGltZWxpbmVz
LmdldChXSS5UaW1lbGluZVJlY29yZC5UeXBlLk5ldHdvcmspOwogICAgICAgICBpZiAodGhpcy5f
bmV0d29ya1RpbWVsaW5lKQpAQCAtMTI1LDYgKzEyNiwxMSBAQCBXSS5PdmVydmlld1RpbWVsaW5l
VmlldyA9IGNsYXNzIE92ZXJ2aWV3VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3
CiAKICAgICAvLyBQcm90ZWN0ZWQKIAorICAgIGdldCBzaG93c0ltcG9ydGVkUmVjb3JkaW5nTWVz
c2FnZSgpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBkYXRhR3Jp
ZE5vZGVQYXRoQ29tcG9uZW50U2VsZWN0ZWQoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgZGF0
YUdyaWROb2RlID0gZXZlbnQuZGF0YS5wYXRoQ29tcG9uZW50LnRpbWVsaW5lRGF0YUdyaWROb2Rl
OwpAQCAtMTM1LDYgKzE0MSw5IEBAIFdJLk92ZXJ2aWV3VGltZWxpbmVWaWV3ID0gY2xhc3MgT3Zl
cnZpZXdUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcKIAogICAgIGxheW91dCgp
CiAgICAgeworICAgICAgICBpZiAodGhpcy5fcmVjb3JkaW5nLmltcG9ydGVkKQorICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgIGxldCBvbGRaZXJvVGltZSA9IHRoaXMuX3RpbWVsaW5lUnVs
ZXIuemVyb1RpbWU7CiAgICAgICAgIGxldCBvbGRTdGFydFRpbWUgPSB0aGlzLl90aW1lbGluZVJ1
bGVyLnN0YXJ0VGltZTsKICAgICAgICAgbGV0IG9sZEVuZFRpbWUgPSB0aGlzLl90aW1lbGluZVJ1
bGVyLmVuZFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3Lmpz
CmluZGV4IDY4ZTBkMDJmYzQ1Li4yOWRlYWQ4MjAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVy
aW5nRnJhbWVUaW1lbGluZVZpZXcuanMKQEAgLTkwLDYgKzkwLDkgQEAgV0kuUmVuZGVyaW5nRnJh
bWVUaW1lbGluZVZpZXcgPSBjbGFzcyBSZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldyBleHRlbmRz
IFdJLlRpbWUKICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UaW1lbGluZS5F
dmVudC5SZWNvcmRBZGRlZCwgdGhpcy5fcmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZEFkZGVk
LCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3JkcyA9IFtdOworCisgICAgICAg
IGZvciAobGV0IHJlY29yZCBvZiB0aW1lbGluZS5yZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5f
cHJvY2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAgIHN0YXRpYyBkaXNwbGF5TmFtZUZv
ckR1cmF0aW9uRmlsdGVyKGZpbHRlcikKQEAgLTI3NywxNSArMjgwLDIwIEBAIFdJLlJlbmRlcmlu
Z0ZyYW1lVGltZWxpbmVWaWV3ID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcgZXh0
ZW5kcyBXSS5UaW1lCiAKICAgICBfcmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZEFkZGVkKGV2
ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBl
dmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgbGV0IHJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNv
cmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAgICAgICAgY29uc29sZS5hc3NlcnQocmVuZGVyaW5n
RnJhbWVUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVS
ZWNvcmQpOwogICAgICAgICBjb25zb2xlLmFzc2VydChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVj
b3JkLmNoaWxkcmVuLmxlbmd0aCwgIk1pc3NpbmcgY2hpbGQgcmVjb3JkcyBmb3IgcmVuZGVyaW5n
IGZyYW1lLiIpOwogCi0gICAgICAgIHRoaXMuX3BlbmRpbmdSZWNvcmRzLnB1c2gocmVuZGVyaW5n
RnJhbWVUaW1lbGluZVJlY29yZCk7CisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVuZGVy
aW5nRnJhbWVUaW1lbGluZVJlY29yZCk7CiAKICAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOwog
ICAgIH0KIAorICAgIF9wcm9jZXNzUmVjb3JkKHJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQp
CisgICAgeworICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNoKHJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVSZWNvcmQpOworICAgIH0KKwogICAgIF9zY29wZUJhclNlbGVjdGlvbkRpZENoYW5n
ZSgpCiAgICAgewogICAgICAgICB0aGlzLl9kYXRhR3JpZC5maWx0ZXJEaWRDaGFuZ2UoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Njcmlw
dERldGFpbHNUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3LmpzCmluZGV4IDg4YzM5MmMwMTU4
Li42OWJjMWFlN2I3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3
LmpzCkBAIC04Nyw2ICs4Nyw5IEBAIFdJLlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcgPSBjbGFz
cyBTY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpCiAgICAgICAgIHRp
bWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxpbmUuRXZlbnQuUmVmcmVzaGVkLCB0aGlz
Ll9zY3JpcHRUaW1lbGluZVJlY29yZFJlZnJlc2hlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5f
cGVuZGluZ1JlY29yZHMgPSBbXTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmQgb2YgdGltZWxp
bmUucmVjb3JkcykKKyAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVjb3JkKTsKICAg
ICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTIyNCwxMiArMjI3LDE3IEBAIFdJLlNjcmlwdERldGFp
bHNUaW1lbGluZVZpZXcgPSBjbGFzcyBTY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3IGV4dGVuZHMg
V0kuVGltZWxpCiAKICAgICBfc2NyaXB0VGltZWxpbmVSZWNvcmRBZGRlZChldmVudCkKICAgICB7
Ci0gICAgICAgIHZhciBzY3JpcHRUaW1lbGluZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOwor
ICAgICAgICBsZXQgc2NyaXB0VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoc2NyaXB0VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5T
Y3JpcHRUaW1lbGluZVJlY29yZCk7CiAKKyAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChzY3Jp
cHRUaW1lbGluZVJlY29yZCk7CisKKyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0K
KworICAgIF9wcm9jZXNzUmVjb3JkKHNjcmlwdFRpbWVsaW5lUmVjb3JkKQorICAgIHsKICAgICAg
ICAgdGhpcy5fcGVuZGluZ1JlY29yZHMucHVzaChzY3JpcHRUaW1lbGluZVJlY29yZCk7Ci0KLSAg
ICAgICAgdGhpcy5uZWVkc0xheW91dCgpOwogICAgIH0KIAogICAgIF9zY3JpcHRUaW1lbGluZVJl
Y29yZFJlZnJlc2hlZChldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzCmluZGV4IDU3NTM2
Yjc0ZDg5Li5hYTZhM2E0NjNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzCkBAIC0xMTYs
MTAgKzExNiwyOCBAQCBXSS5UaW1lbGluZU92ZXJ2aWV3ID0gY2xhc3MgVGltZWxpbmVPdmVydmll
dyBleHRlbmRzIFdJLlZpZXcKIAogICAgICAgICB0aGlzLl92aWV3TW9kZURpZENoYW5nZSgpOwog
CisgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRpbWVsaW5l
TWFuYWdlci5FdmVudC5SZWNvcmRpbmdJbXBvcnRlZCwgdGhpcy5fcmVjb3JkaW5nSW1wb3J0ZWQs
IHRoaXMpOwogICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5U
aW1lbGluZU1hbmFnZXIuRXZlbnQuQ2FwdHVyaW5nU3RhcnRlZCwgdGhpcy5fY2FwdHVyaW5nU3Rh
cnRlZCwgdGhpcyk7CiAgICAgICAgIFdJLnRpbWVsaW5lTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLlRpbWVsaW5lTWFuYWdlci5FdmVudC5DYXB0dXJpbmdTdG9wcGVkLCB0aGlzLl9jYXB0dXJp
bmdTdG9wcGVkLCB0aGlzKTsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAg
IGV4cG9ydERhdGEoKQorICAgIHsKKyAgICAgICAgbGV0IGpzb24gPSB7CisgICAgICAgICAgICBz
ZWNvbmRzUGVyUGl4ZWw6IHRoaXMuc2Vjb25kc1BlclBpeGVsLAorICAgICAgICAgICAgc2Nyb2xs
U3RhcnRUaW1lOiB0aGlzLnNjcm9sbFN0YXJ0VGltZSwKKyAgICAgICAgICAgIHNlbGVjdGlvblN0
YXJ0VGltZTogdGhpcy5zZWxlY3Rpb25TdGFydFRpbWUsCisgICAgICAgICAgICBzZWxlY3Rpb25E
dXJhdGlvbjogdGhpcy5zZWxlY3Rpb25EdXJhdGlvbiwKKyAgICAgICAgfTsKKworICAgICAgICBp
ZiAodGhpcy5fc2VsZWN0ZWRUaW1lbGluZSkKKyAgICAgICAgICAgIGpzb24uc2VsZWN0ZWRUaW1l
bGluZVR5cGUgPSB0aGlzLl9zZWxlY3RlZFRpbWVsaW5lLnR5cGU7CisKKyAgICAgICAgcmV0dXJu
IGpzb247CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgc2VsZWN0ZWRUaW1lbGlu
ZSgpCkBAIC02NTcsNiArNjc1LDggQEAgV0kuVGltZWxpbmVPdmVydmlldyA9IGNsYXNzIFRpbWVs
aW5lT3ZlcnZpZXcgZXh0ZW5kcyBXSS5WaWV3CiAgICAgICAgICAgICBvdmVydmlld0dyYXBoLmhp
ZGRlbigpOwogICAgICAgICAgICAgdHJlZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTsKICAgICAgICAg
fQorCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKICAgICB9CiAKICAgICBfaW5zdHJ1bWVu
dFJlbW92ZWQoZXZlbnQpCkBAIC0xMDEyLDEzICsxMDMyLDM2IEBAIFdJLlRpbWVsaW5lT3ZlcnZp
ZXcgPSBjbGFzcyBUaW1lbGluZU92ZXJ2aWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICB0aGlz
Ll9lZGl0aW5nSW5zdHJ1bWVudHNEaWRDaGFuZ2UoKTsKICAgICB9CiAKLSAgICBfY2FwdHVyaW5n
U3RhcnRlZCgpCisgICAgX3JlY29yZGluZ0ltcG9ydGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAg
bGV0IHtvdmVydmlld0RhdGF9ID0gZXZlbnQuZGF0YTsKKworICAgICAgICBpZiAob3ZlcnZpZXdE
YXRhLnNlY29uZHNQZXJQaXhlbCAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgdGhpcy5zZWNv
bmRzUGVyUGl4ZWwgPSBvdmVydmlld0RhdGEuc2Vjb25kc1BlclBpeGVsOworICAgICAgICBpZiAo
b3ZlcnZpZXdEYXRhLnNjcm9sbFN0YXJ0VGltZSAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
dGhpcy5zY3JvbGxTdGFydFRpbWUgPSBvdmVydmlld0RhdGEuc2Nyb2xsU3RhcnRUaW1lOworICAg
ICAgICBpZiAob3ZlcnZpZXdEYXRhLnNlbGVjdGlvblN0YXJ0VGltZSAhPT0gdW5kZWZpbmVkKQor
ICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TdGFydFRpbWUgPSBvdmVydmlld0RhdGEuc2VsZWN0
aW9uU3RhcnRUaW1lOworICAgICAgICBpZiAob3ZlcnZpZXdEYXRhLnNlbGVjdGlvbkR1cmF0aW9u
ICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIGlmIChvdmVydmlld0RhdGEuc2VsZWN0aW9u
RHVyYXRpb24gPT09IE51bWJlci5NQVhfVkFMVUUpCisgICAgICAgICAgICAgICAgdGhpcy5fdGlt
ZWxpbmVSdWxlci5zZWxlY3RFbnRpcmVSYW5nZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHRoaXMuc2VsZWN0aW9uRHVyYXRpb24gPSBvdmVydmlld0RhdGEuc2VsZWN0aW9u
RHVyYXRpb247CisgICAgICAgIH0KKyAgICAgICAgaWYgKG92ZXJ2aWV3RGF0YS5zZWxlY3RlZFRp
bWVsaW5lVHlwZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICBsZXQgdGltZWxpbmUgPSB0
aGlzLl9yZWNvcmRpbmcudGltZWxpbmVGb3JSZWNvcmRUeXBlKG92ZXJ2aWV3RGF0YS5zZWxlY3Rl
ZFRpbWVsaW5lVHlwZSk7CisgICAgICAgICAgICBpZiAodGltZWxpbmUpCisgICAgICAgICAgICAg
ICAgdGhpcy5zZWxlY3RlZFRpbWVsaW5lID0gdGltZWxpbmU7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBfY2FwdHVyaW5nU3RhcnRlZChldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX2VkaXRJ
bnN0cnVtZW50c0J1dHRvbi5lbmFibGVkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX3N0b3BFZGl0
aW5nSW5zdHJ1bWVudHMoKTsKICAgICB9CiAKLSAgICBfY2FwdHVyaW5nU3RvcHBlZCgpCisgICAg
X2NhcHR1cmluZ1N0b3BwZWQoZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLl9lZGl0SW5zdHJ1
bWVudHNCdXR0b24uZW5hYmxlZCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRCYXIuY3NzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRC
YXIuY3NzCmluZGV4IDBiMzBkYWUxODhjLi5hNWQ2MGU1ZjlmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRCYXIuY3Nz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
UmVjb3JkQmFyLmNzcwpAQCAtMTExLDggKzExMSw4IEBAIGJvZHlbZGlyPXJ0bF0gOmZvY3VzIC5z
ZWxlY3RlZCAudGltZWxpbmUtcmVjb3JkLWJhci5oYXMtaW5hY3RpdmUtc2VnbWVudCA+IC5zZWdt
CiB9CiAKIAotLnRpbWVsaW5lLXJlY29yZC1iYXIudGltZWxpbmUtcmVjb3JkLXR5cGUtbGF5b3V0
LmxheW91dC10aW1lbGluZS1yZWNvcmQtcGFpbnQgPiAuc2VnbWVudCwKLS50aW1lbGluZS1yZWNv
cmQtYmFyLnRpbWVsaW5lLXJlY29yZC10eXBlLWxheW91dC5sYXlvdXQtdGltZWxpbmUtcmVjb3Jk
LWNvbXBvc2l0ZSA+IC5zZWdtZW50IHsKKy50aW1lbGluZS1yZWNvcmQtYmFyLnRpbWVsaW5lLXJl
Y29yZC10eXBlLWxheW91dC5wYWludCA+IC5zZWdtZW50LAorLnRpbWVsaW5lLXJlY29yZC1iYXIu
dGltZWxpbmUtcmVjb3JkLXR5cGUtbGF5b3V0LmNvbXBvc2l0ZSA+IC5zZWdtZW50IHsKICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBoc2woNzYsIDQ5JSwgNjAlKTsKICAgICBib3JkZXItY29sb3I6IGhz
bCg3OSwgNDUlLCA1MSUpOwogfQpAQCAtMTIyLDcgKzEyMiw3IEBAIGJvZHlbZGlyPXJ0bF0gOmZv
Y3VzIC5zZWxlY3RlZCAudGltZWxpbmUtcmVjb3JkLWJhci5oYXMtaW5hY3RpdmUtc2VnbWVudCA+
IC5zZWdtCiAgICAgYm9yZGVyLWNvbG9yOiBoc2woMjczLCAzMyUsIDU4JSk7CiB9CiAKLS50aW1l
bGluZS1yZWNvcmQtYmFyLnRpbWVsaW5lLXJlY29yZC10eXBlLXNjcmlwdC5zY3JpcHQtdGltZWxp
bmUtcmVjb3JkLWdhcmJhZ2UtY29sbGVjdGVkID4gLnNlZ21lbnQgeworLnRpbWVsaW5lLXJlY29y
ZC1iYXIudGltZWxpbmUtcmVjb3JkLXR5cGUtc2NyaXB0LmdhcmJhZ2UtY29sbGVjdGVkID4gLnNl
Z21lbnQgewogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCgyMywgNjklLCA3MyUpOwogICAgIGJv
cmRlci1jb2xvcjogaHNsKDExLCA1NCUsIDYyJSk7ICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50Vmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwppbmRleCA4MjVlYmFkMjg1ZC4uY2Y2ZmJm
Y2FkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcu
Y3NzCkBAIC01OSw3ICs1OSw3IEBACiAgICAgLS1zY29wZS1iYXItYm9yZGVyLWNvbG9yLW92ZXJy
aWRlOiB0cmFuc3BhcmVudDsKIH0KIAotLmNvbnRlbnQtdmlldy50aW1lbGluZS1yZWNvcmRpbmcg
PiAuY29udGVudC1icm93c2VyIC5yZWNvcmRpbmctcHJvZ3Jlc3MgeworLmNvbnRlbnQtdmlldy50
aW1lbGluZS1yZWNvcmRpbmcgPiAuY29udGVudC1icm93c2VyIDptYXRjaGVzKC5yZWNvcmRpbmct
cHJvZ3Jlc3MsIC5yZWNvcmRpbmctaW1wb3J0ZWQpIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CiAgICAgbGVmdDogMDsKICAgICByaWdodDogMDsKQEAgLTY5LDcgKzY5LDcgQEAKICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiB2YXIoLS1wYW5lbC1iYWNrZ3JvdW5kLWNvbG9yLWxpZ2h0KTsKIH0KIAot
LmNvbnRlbnQtdmlldy50aW1lbGluZS1yZWNvcmRpbmcgPiAuY29udGVudC1icm93c2VyIC5yZWNv
cmRpbmctcHJvZ3Jlc3MgPiAuc3RhdHVzIHsKKy5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3Jk
aW5nID4gLmNvbnRlbnQtYnJvd3NlciA6bWF0Y2hlcygucmVjb3JkaW5nLXByb2dyZXNzLCAucmVj
b3JkaW5nLWltcG9ydGVkKSA+IC5zdGF0dXMgewogICAgIG1hcmdpbi10b3A6IDQwcHg7CiAgICAg
bWFyZ2luLWJvdHRvbTogMTBweDsKICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5qcwppbmRleCAyMzIyYjcyMTRhMy4u
OWNlYjdmNjRiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50
Vmlldy5qcwpAQCAtNjQsNiArNjQsMTkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmll
dyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAg
ICAgICAgIFdJLnNldHRpbmdzLnRpbWVsaW5lc0F1dG9TdG9wLmFkZEV2ZW50TGlzdGVuZXIoV0ku
U2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVUaW1lbGluZXNBdXRvU3RvcFNldHRp
bmdDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2V4cG9ydEJ1dHRv
bk5hdmlnYXRpb25JdGVtID0gbmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJleHBvcnQiLCBX
SS5VSVN0cmluZygiRXhwb3J0IiksICJJbWFnZXMvRXhwb3J0LnN2ZyIsIDE1LCAxNSk7CisgICAg
ICAgIHRoaXMuX2V4cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnRvb2xUaXAgPSBXSS5VSVN0cmlu
ZygiRXhwb3J0ICglcykiKS5mb3JtYXQoV0kuc2F2ZUtleWJvYXJkU2hvcnRjdXQuZGlzcGxheU5h
bWUpOworICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5idXR0b25TdHls
ZSA9IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLlN0eWxlLkltYWdlQW5kVGV4dDsKKyAgICAgICAg
dGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0gV0ku
TmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKKyAgICAgICAgdGhpcy5fZXhw
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0b25OYXZpZ2F0
aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNs
aWNrZWQsIHRoaXMpOworICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5l
bmFibGVkID0gZmFsc2U7CisKKyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0
ZW0gPSBuZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImltcG9ydCIsIFdJLlVJU3RyaW5nKCJJ
bXBvcnQiKSwgIkltYWdlcy9JbXBvcnQuc3ZnIiwgMTUsIDE1KTsKKyAgICAgICAgdGhpcy5faW1w
b3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0udG9vbFRpcCA9IFdJLlVJU3RyaW5nKCJJbXBvcnQiKTsK
KyAgICAgICAgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBX
SS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7CisgICAgICAgIHRoaXMu
X2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmln
YXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2Vk
LCB0aGlzKTsKKwogICAgICAgICB0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0gPSBu
ZXcgV0kuQnV0dG9uTmF2aWdhdGlvbkl0ZW0oImNsZWFyLXRpbWVsaW5lIiwgV0kuVUlTdHJpbmco
IkNsZWFyIFRpbWVsaW5lICglcykiKS5mb3JtYXQoV0kuY2xlYXJLZXlib2FyZFNob3J0Y3V0LmRp
c3BsYXlOYW1lKSwgIkltYWdlcy9OYXZpZ2F0aW9uSXRlbVRyYXNoLnN2ZyIsIDE1LCAxNSk7CiAg
ICAgICAgIHRoaXMuX2NsZWFyVGltZWxpbmVOYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3Jp
dHkgPSBXSS5OYXZpZ2F0aW9uSXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OwogICAgICAgICB0
aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihXSS5CdXR0
b25OYXZpZ2F0aW9uSXRlbS5FdmVudC5DbGlja2VkLCB0aGlzLl9jbGVhclRpbWVsaW5lLCB0aGlz
KTsKQEAgLTc0LDYgKzg3LDkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNs
YXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAgICAgdGhp
cy5fcHJvZ3Jlc3NWaWV3ID0gbmV3IFdJLlRpbWVsaW5lUmVjb3JkaW5nUHJvZ3Jlc3NWaWV3Owog
ICAgICAgICB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2VyLmFkZFN1YnZpZXcodGhpcy5fcHJv
Z3Jlc3NWaWV3KTsKIAorICAgICAgICB0aGlzLl9pbXBvcnRlZFZpZXcgPSBuZXcgV0kuVGltZWxp
bmVSZWNvcmRpbmdJbXBvcnRlZFZpZXc7CisgICAgICAgIHRoaXMuX3RpbWVsaW5lQ29udGVudEJy
b3dzZXIuYWRkU3Vidmlldyh0aGlzLl9pbXBvcnRlZFZpZXcpOworCiAgICAgICAgIHRoaXMuX3Rp
bWVsaW5lVmlld01hcCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMuX3BhdGhDb21wb25lbnRNYXAg
PSBuZXcgTWFwOwogCkBAIC0xMDksNiArMTI1LDExIEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29u
dGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
CiAgICAgICAgICAgICB0aGlzLl9pbnN0cnVtZW50QWRkZWQoaW5zdHJ1bWVudCk7CiAKICAgICAg
ICAgdGhpcy5zaG93T3ZlcnZpZXdUaW1lbGluZVZpZXcoKTsKKworICAgICAgICBpZiAodGhpcy5f
cmVjb3JkaW5nLmltcG9ydGVkKSB7CisgICAgICAgICAgICBsZXQge3N0YXJ0VGltZSwgZW5kVGlt
ZX0gPSB0aGlzLl9yZWNvcmRpbmc7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVUaW1lcyhzdGFy
dFRpbWUsIGVuZFRpbWUsIGVuZFRpbWUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHVi
bGljCkBAIC0xNjcsNiArMTg4LDkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9
IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAgICAg
aWYgKHRoaXMuX2F1dG9TdG9wQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbSkKICAgICAgICAgICAgIG5h
dmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX2F1dG9TdG9wQ2hlY2tib3hOYXZpZ2F0aW9uSXRlbSk7
CiAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKG5ldyBXSS5EaXZpZGVyTmF2aWdhdGlvbkl0
ZW0pOworICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9pbXBvcnRCdXR0b25OYXZp
Z2F0aW9uSXRlbSk7CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRoaXMuX2V4cG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtKTsKKyAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2gobmV3IFdJ
LkRpdmlkZXJOYXZpZ2F0aW9uSXRlbSk7CiAgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKHRo
aXMuX2NsZWFyVGltZWxpbmVOYXZpZ2F0aW9uSXRlbSk7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0
aW9uSXRlbXM7CiAgICAgfQpAQCAtMTc5LDE0ICsyMDMsMTIgQEAgV0kuVGltZWxpbmVSZWNvcmRp
bmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5k
cyBXSS4KIAogICAgIGdldCBzdXBwb3J0c1NhdmUoKQogICAgIHsKLSAgICAgICAgbGV0IGN1cnJl
bnRDb250ZW50VmlldyA9IHRoaXMuX3RpbWVsaW5lQ29udGVudEJyb3dzZXIuY3VycmVudENvbnRl
bnRWaWV3OwotICAgICAgICByZXR1cm4gY3VycmVudENvbnRlbnRWaWV3ICYmIGN1cnJlbnRDb250
ZW50Vmlldy5zdXBwb3J0c1NhdmU7CisgICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmRpbmcuY2Fu
RXhwb3J0KCk7CiAgICAgfQogCiAgICAgZ2V0IHNhdmVEYXRhKCkKICAgICB7Ci0gICAgICAgIGxl
dCBjdXJyZW50Q29udGVudFZpZXcgPSB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2VyLmN1cnJl
bnRDb250ZW50VmlldzsKLSAgICAgICAgcmV0dXJuIGN1cnJlbnRDb250ZW50VmlldyAmJiBjdXJy
ZW50Q29udGVudFZpZXcuc2F2ZURhdGEgfHwgbnVsbDsKKyAgICAgICAgcmV0dXJuIHtjdXN0b21T
YXZlSGFuZGxlcjogKCkgPT4geyB0aGlzLl9leHBvcnRUaW1lbGluZVJlY29yZGluZygpOyB9fTsK
ICAgICB9CiAKICAgICBnZXQgY3VycmVudFRpbWVsaW5lVmlldygpCkBAIC0yMDAsNyArMjIyLDkg
QEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KIAogICAgICAgICB0aGlzLl90aW1lbGluZU92ZXJ2
aWV3LnNob3duKCk7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5lQ29udGVudEJyb3dzZXIuc2hvd24o
KTsKKwogICAgICAgICB0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9
ICF0aGlzLl9yZWNvcmRpbmcucmVhZG9ubHkgJiYgIWlzTmFOKHRoaXMuX3JlY29yZGluZy5zdGFy
dFRpbWUpOworICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVk
ID0gdGhpcy5fcmVjb3JkaW5nLmNhbkV4cG9ydCgpOwogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRD
b250ZW50Vmlld0RpZENoYW5nZSgpOwogCkBAIC0yOTIsNiArMzE2LDcgQEAgV0kuVGltZWxpbmVS
ZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS4KICAgICAgICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy52aWV3TW9kZSA9IG5l
d1ZpZXdNb2RlOwogICAgICAgICB0aGlzLl91cGRhdGVUaW1lbGluZU92ZXJ2aWV3SGVpZ2h0KCk7
CiAgICAgICAgIHRoaXMuX3VwZGF0ZVByb2dyZXNzVmlldygpOworICAgICAgICB0aGlzLl91cGRh
dGVJbXBvcnRlZFZpZXcoKTsKICAgICAgICAgdGhpcy5fdXBkYXRlRmlsdGVyQmFyKCk7CiAKICAg
ICAgICAgaWYgKHRpbWVsaW5lVmlldykgewpAQCAtNDk3LDYgKzUyMiw3IEBAIFdJLlRpbWVsaW5l
UmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3
IGV4dGVuZHMgV0kuCiAgICAgICAgIGlmICghdGhpcy5fdXBkYXRpbmcpCiAgICAgICAgICAgICB0
aGlzLl9zdGFydFVwZGF0aW5nQ3VycmVudFRpbWUoc3RhcnRUaW1lKTsKICAgICAgICAgdGhpcy5f
Y2xlYXJUaW1lbGluZU5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSAhdGhpcy5fcmVjb3JkaW5nLnJl
YWRvbmx5OworICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVk
ID0gZmFsc2U7CiAKICAgICAgICAgLy8gQSBkaXNjb250aW51aXR5IG9jY3VycyB3aGVuIHRoZSBy
ZWNvcmRpbmcgaXMgc3RvcHBlZCBhbmQgcmVzdW1lZCBhdAogICAgICAgICAvLyBhIGZ1dHVyZSB0
aW1lLiBDYXB0dXJpbmcgc3RhcnRlZCBzaWduYWxzIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQKQEAg
LTUxOCw2ICs1NDQsOCBAQCBXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3Mg
VGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLgogICAgICAgICAgICAgdGhp
cy5fdXBkYXRlVGltZWxpbmVWaWV3VGltZXModGhpcy5jdXJyZW50VGltZWxpbmVWaWV3KTsKIAog
ICAgICAgICB0aGlzLl9kaXNjb250aW51aXR5U3RhcnRUaW1lID0gZXZlbnQuZGF0YS5lbmRUaW1l
IHx8IHRoaXMuX2N1cnJlbnRUaW1lOworCisgICAgICAgIHRoaXMuX2V4cG9ydEJ1dHRvbk5hdmln
YXRpb25JdGVtLmVuYWJsZWQgPSB0aGlzLl9yZWNvcmRpbmcuY2FuRXhwb3J0KCk7CiAgICAgfQog
CiAgICAgX2RlYnVnZ2VyUGF1c2VkKGV2ZW50KQpAQCAtNTYyLDYgKzU5MCw0MiBAQCBXSS5UaW1l
bGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50
VmlldyBleHRlbmRzIFdJLgogICAgICAgICB0aGlzLl9hdXRvU3RvcENoZWNrYm94TmF2aWdhdGlv
bkl0ZW0uY2hlY2tlZCA9IFdJLnNldHRpbmdzLnRpbWVsaW5lc0F1dG9TdG9wLnZhbHVlOwogICAg
IH0KIAorICAgIF9leHBvcnRUaW1lbGluZVJlY29yZGluZygpCisgICAgeworICAgICAgICBsZXQg
anNvbiA9IHsKKyAgICAgICAgICAgIHZlcnNpb246IFdJLlRpbWVsaW5lUmVjb3JkaW5nLlNlcmlh
bGl6YXRpb25WZXJzaW9uLAorICAgICAgICAgICAgcmVjb3JkaW5nOiB0aGlzLl9yZWNvcmRpbmcu
ZXhwb3J0RGF0YSgpLAorICAgICAgICAgICAgb3ZlcnZpZXc6IHRoaXMuX3RpbWVsaW5lT3ZlcnZp
ZXcuZXhwb3J0RGF0YSgpLAorICAgICAgICB9OworICAgICAgICBpZiAoIWpzb24ucmVjb3JkaW5n
IHx8ICFqc29uLm92ZXJ2aWV3KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
YmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IGZy
YW1lTmFtZSA9IG51bGw7CisgICAgICAgIGxldCBtYWluRnJhbWUgPSBXSS5uZXR3b3JrTWFuYWdl
ci5tYWluRnJhbWU7CisgICAgICAgIGlmIChtYWluRnJhbWUpCisgICAgICAgICAgICBmcmFtZU5h
bWUgPSBtYWluRnJhbWUubWFpblJlc291cmNlLnVybENvbXBvbmVudHMuaG9zdCB8fCBtYWluRnJh
bWUubWFpblJlc291cmNlLmRpc3BsYXlOYW1lOworCisgICAgICAgIGxldCBmaWxlbmFtZSA9IGZy
YW1lTmFtZSA/IGAke2ZyYW1lTmFtZX0tcmVjb3JkaW5nYCA6IHRoaXMuX3JlY29yZGluZy5kaXNw
bGF5TmFtZTsKKyAgICAgICAgbGV0IHVybCA9ICJ3ZWItaW5zcGVjdG9yOi8vLyIgKyBlbmNvZGVV
UkkoZmlsZW5hbWUpICsgIi5qc29uIjsKKyAgICAgICAgV0kuRmlsZVV0aWxpdGllcy5zYXZlKHsK
KyAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KGpz
b24pLAorICAgICAgICAgICAgZm9yY2VTYXZlQXM6IHRydWUsCisgICAgICAgIH0pOworICAgIH0K
KworICAgIF9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAgewor
ICAgICAgICB0aGlzLl9leHBvcnRUaW1lbGluZVJlY29yZGluZygpOworICAgIH0KKworICAgIF9p
bXBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbUNsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICBX
SS5GaWxlVXRpbGl0aWVzLmltcG9ydEpTT04oKHJlc3VsdCkgPT4gV0kudGltZWxpbmVNYW5hZ2Vy
LnByb2Nlc3NKU09OKHJlc3VsdCkpOworICAgIH0KKwogICAgIF9jbGVhclRpbWVsaW5lKGV2ZW50
KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZy5yZWFkb25seSkKQEAgLTY2NCw2
ICs3MjgsNyBAQCBXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxp
bmVSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLgogICAgICAgICB0aGlzLl90aW1lbGlu
ZU92ZXJ2aWV3LnJlc2V0KCk7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3VGltZWxpbmVWaWV3LnJl
c2V0KCk7CiAgICAgICAgIHRoaXMuX2NsZWFyVGltZWxpbmVOYXZpZ2F0aW9uSXRlbS5lbmFibGVk
ID0gZmFsc2U7CisgICAgICAgIHRoaXMuX2V4cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmVuYWJs
ZWQgPSBmYWxzZTsKICAgICB9CiAKICAgICBfcmVjb3JkaW5nVW5sb2FkZWQoZXZlbnQpCkBAIC04
NzcsNiArOTQyLDExIEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBU
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAgICAgICAgIHRoaXMuX3By
b2dyZXNzVmlldy52aXNpYmxlID0gaXNDYXB0dXJpbmcgJiYgdGhpcy5jdXJyZW50VGltZWxpbmVW
aWV3ICYmICF0aGlzLmN1cnJlbnRUaW1lbGluZVZpZXcuc2hvd3NMaXZlUmVjb3JkaW5nRGF0YTsK
ICAgICB9CiAKKyAgICBfdXBkYXRlSW1wb3J0ZWRWaWV3KCkKKyAgICB7CisgICAgICAgIHRoaXMu
X2ltcG9ydGVkVmlldy52aXNpYmxlID0gdGhpcy5fcmVjb3JkaW5nLmltcG9ydGVkICYmIHRoaXMu
Y3VycmVudFRpbWVsaW5lVmlldyAmJiB0aGlzLmN1cnJlbnRUaW1lbGluZVZpZXcuc2hvd3NJbXBv
cnRlZFJlY29yZGluZ01lc3NhZ2U7CisgICAgfQorCiAgICAgX3VwZGF0ZUZpbHRlckJhcigpCiAg
ICAgewogICAgICAgICB0aGlzLl9maWx0ZXJCYXJOYXZpZ2F0aW9uSXRlbS5oaWRkZW4gPSAhdGhp
cy5jdXJyZW50VGltZWxpbmVWaWV3IHx8ICF0aGlzLmN1cnJlbnRUaW1lbGluZVZpZXcuc2hvd3NG
aWx0ZXJCYXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0ltcG9ydGVkVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0ltcG9ydGVkVmll
dy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU5ODUwOGYxYzlm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGltZWxpbmVSZWNvcmRpbmdJbXBvcnRlZFZpZXcuY3NzCkBAIC0wLDAgKzEsMzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisuY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZyA+IC5jb250ZW50
LWJyb3dzZXIgLnJlY29yZGluZy1pbXBvcnRlZCAubWVzc2FnZS10ZXh0LXZpZXcgPiAubWVzc2Fn
ZSB7CisJZm9udC1zaXplOiB2YXIoLS1tZXNzYWdlLXRleHQtdmlldy1sYXJnZS1mb250LXNpemUp
OworCWZvbnQtd2VpZ2h0OiA2MDA7CisJbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
UmVjb3JkaW5nSW1wb3J0ZWRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdJbXBvcnRlZFZpZXcuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYxZDFiMThhYWVkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNv
cmRpbmdJbXBvcnRlZFZpZXcuanMKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLlRp
bWVsaW5lUmVjb3JkaW5nSW1wb3J0ZWRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdJbXBv
cnRlZFZpZXcgZXh0ZW5kcyBXSS5WaWV3Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAg
ICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicmVj
b3JkaW5nLWltcG9ydGVkIik7CisgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChXSS5j
cmVhdGVNZXNzYWdlVGV4dFZpZXcoV0kuVUlTdHJpbmcoIkltcG9ydGVkIFRpbWVsaW5lIFJlY29y
ZGluZyIpKSk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgdmlzaWJsZSgpIHsg
cmV0dXJuIHRoaXMuX3Zpc2libGU7IH0KKworICAgIHNldCB2aXNpYmxlKHgpCisgICAgeworICAg
ICAgICBpZiAodGhpcy5fdmlzaWJsZSA9PT0geCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAvLyBGSVhNRTogcmVtb3ZlIG9uY2UgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MDc0MT4g
aXMgZml4ZWQuCisgICAgICAgIHRoaXMuX3Zpc2libGUgPSB4OworICAgICAgICB0aGlzLmVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwgIXRoaXMuX3Zpc2libGUpOworICAgIH0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9UaW1lbGluZVZpZXcuanMKaW5kZXggODVlN2FmZDJhZWIuLmFiMTNjY2I4M2ExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGlt
ZWxpbmVWaWV3LmpzCkBAIC01Niw2ICs1NiwxMiBAQCBXSS5UaW1lbGluZVZpZXcgPSBjbGFzcyBU
aW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKKyAgICBnZXQgc2hvd3NJbXBvcnRlZFJlY29yZGluZ01lc3NhZ2UoKQorICAgIHsK
KyAgICAgICAgLy8gSW1wbGVtZW50ZWQgYnkgc3ViLWNsYXNzZXMgaWYgbmVlZGVkLgorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgZ2V0IHNob3dzRmlsdGVyQmFyKCkKICAgICB7
CiAgICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1Yi1jbGFzc2VzIGlmIG5lZWRlZC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364735</attachid>
            <date>2019-03-14 17:43:41 -0700</date>
            <delta_ts>2019-03-15 16:23:53 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>ex-1.patch</filename>
            <type>text/plain</type>
            <size>96841</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMTI4MzA3NDUwNS4uYjA0YjAyMDJjYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wMy0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lcyAtIEltcG9ydCAvIEV4cG9ydCBUaW1lbGluZSBS
ZWNvcmRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTU3MDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzMTg4OTIxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXJlY29yZGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNvcmRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTktMDMt
MTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBOZXR3b3JrIC0gSEFSIEltcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY29yZGluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWM3OWFmYWE4ZTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
cmVjb3JkaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcwIEBACitUZXN0cyBmb3IgdGltZWxp
bmUgcmVjb3JkaW5nLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogVGltZWxpbmVSZWNvcmRp
bmcKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBUaW1lbGluZVJlY29yZGluZy5CYXNpYworTG9hZGVk
CitQQVNTOiBUaW1lbGluZU1hbmFnZXIgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuCitQQVNTOiBU
aW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGNhcHR1cmluZy4KK1BBU1M6IFRpbWVsaW5l
UmVjb3JkaW5nIHNob3VsZCBub3QgYmUgcmVhZG9ubHkuCitQQVNTOiBUaW1lbGluZVJlY29yZGlu
ZyBzaG91bGQgbm90IGJlIGltcG9ydGVkLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxk
IG5vdCBoYXZlIGEgc3RhcnRUaW1lLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5v
dCBoYXZlIGEgZW5kVGltZS4KK1N0YXJ0CitQQVNTOiBUaW1lbGluZU1hbmFnZXIgc2hvdWxkIGJl
IGNhcHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lTWFuYWdlciBhY3RpdmUgcmVjb3JkaW5nIHNob3Vs
ZCBub3QgaGF2ZSBjaGFuZ2VkLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIGJlIGNh
cHR1cmluZy4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgcmVhZG9ubHku
CitSZWxvYWQKK1N0b3AKK1BBU1M6IFRpbWVsaW5lTWFuYWdlciBzaG91bGQgbm90IGJlIGNhcHR1
cmluZy4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgY2FwdHVyaW5nLgor
UEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSByZWFkb25seS4KK1BBU1M6IFRp
bWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgaW1wb3J0ZWQuCitQQVNTOiBUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgaGF2ZSBhIHN0YXJ0VGltZS4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5n
IHNob3VsZCBoYXZlIGEgZW5kVGltZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFRpbWVsaW5l
UmVjb3JkaW5nLnByb3RvdHlwZS5leHBvcnREYXRhCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBz
aG91bGQgYmUgYWJsZSB0byBleHBvcnQuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQg
YmUgYWJsZSB0byBwcm9kdWNlIGV4cG9ydCBkYXRhLgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcg
c2hvdWxkIGhhdmUgYXQgbGVhc3QgMTAgVGltZWxpbmUgUmVjb3Jkcy4KK0V4cG9ydCBEYXRhOgor
eworICAiZGlzcGxheU5hbWUiOiAiPGZpbHRlcmVkPiIsCisgICJzdGFydFRpbWUiOiAiPGZpbHRl
cmVkPiIsCisgICJlbmRUaW1lIjogIjxmaWx0ZXJlZD4iLAorICAiZGlzY29udGludWl0aWVzIjog
W10sCisgICJpbnN0cnVtZW50VHlwZXMiOiBbCisgICAgInRpbWVsaW5lLXJlY29yZC10eXBlLW5l
dHdvcmsiLAorICAgICJ0aW1lbGluZS1yZWNvcmQtdHlwZS1sYXlvdXQiLAorICAgICJ0aW1lbGlu
ZS1yZWNvcmQtdHlwZS1zY3JpcHQiLAorICAgICJ0aW1lbGluZS1yZWNvcmQtdHlwZS1jcHUiLAor
ICAgICJ0aW1lbGluZS1yZWNvcmQtdHlwZS1yZW5kZXJpbmctZnJhbWUiCisgIF0sCisgICJyZWNv
cmRzIjogIjxmaWx0ZXJlZD4iLAorICAibWFya2VycyI6IFsKKyAgICB7CisgICAgICAidGltZSI6
ICI8ZmlsdGVyZWQ+IiwKKyAgICAgICJ0eXBlIjogImRvbS1jb250ZW50LWV2ZW50IgorICAgIH0s
CisgICAgeworICAgICAgInRpbWUiOiAiPGZpbHRlcmVkPiIsCisgICAgICAidHlwZSI6ICJsb2Fk
LWV2ZW50IgorICAgIH0KKyAgXSwKKyAgIm1lbW9yeVByZXNzdXJlRXZlbnRzIjogW10sCisgICJz
YW1wbGVTdGFja1RyYWNlcyI6IFtdLAorICAic2FtcGxlRHVyYXRpb25zIjogW10KK30KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFRpbWVsaW5lUmVjb3JkaW5nLmltcG9ydAorUEFTUzogVGltZWxp
bmVNYW5hZ2VyIGFjdGl2ZSByZWNvcmRpbmcgaXMgbm90IHRoaXMgaW1wb3J0ZWQgcmVjb3JkaW5n
LgorUEFTUzogVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuCitQQVNT
OiBUaW1lbGluZVJlY29yZGluZyBzaG91bGQgYmUgcmVhZG9ubHkuCitQQVNTOiBUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgYmUgaW1wb3J0ZWQuCitQQVNTOiBUaW1lbGluZVJlY29yZGluZyBzaG91
bGQgaGF2ZSBhIHN0YXJ0VGltZS4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBoYXZl
IGEgZW5kVGltZS4KK1BBU1M6IFRpbWVsaW5lUmVjb3JkaW5nIGlkZW50aWZpZXIgc2hvdWxkIGJl
IDk5OS4KK0Rpc3BsYXkgTmFtZToKK0ltcG9ydGVkIC0gVEVTVAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcmVjb3JkaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA0NzAxZjk4OWEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY29yZGlu
Zy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlRpbWVsaW5lUmVj
b3JkaW5nIik7CisKKyAgICBsZXQgZXhwb3J0RGF0YSA9IG51bGw7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJUaW1lbGluZVJlY29yZGluZy5CYXNpYyIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiTWFrZSBhIGJhc2ljIFRpbWVsaW5lIHJlY29yZGluZy4iLAorICAg
ICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IHJlY29yZGluZyA9IFdJLnRpbWVs
aW5lTWFuYWdlci5hY3RpdmVSZWNvcmRpbmc7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJMb2FkZWQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoV0ku
dGltZWxpbmVNYW5hZ2VyLmlzQ2FwdHVyaW5nKCksICJUaW1lbGluZU1hbmFnZXIgc2hvdWxkIG5v
dCBiZSBjYXB0dXJpbmcuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNl
KHJlY29yZGluZy5jYXB0dXJpbmcsICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGNh
cHR1cmluZy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3Jk
aW5nLnJlYWRvbmx5LCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSByZWFkb25seS4i
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLmltcG9y
dGVkLCAiVGltZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSBpbXBvcnRlZC4iKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpc05hTihyZWNvcmRpbmcuc3RhcnRUaW1l
KSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgaGF2ZSBhIHN0YXJ0VGltZS4iKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpc05hTihyZWNvcmRpbmcuZW5kVGlt
ZSksICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGhhdmUgYSBlbmRUaW1lLiIpOworCisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnQiKTsKKyAgICAgICAgICAgIFdJLnRp
bWVsaW5lTWFuYWdlci5zdGFydENhcHR1cmluZygpOworICAgICAgICAgICAgYXdhaXQgV0kudGlt
ZWxpbmVNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LkNhcHR1cmlu
Z1N0YXJ0ZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUcnVlKFdJLnRpbWVs
aW5lTWFuYWdlci5pc0NhcHR1cmluZygpLCAiVGltZWxpbmVNYW5hZ2VyIHNob3VsZCBiZSBjYXB0
dXJpbmcuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLnRpbWVs
aW5lTWFuYWdlci5hY3RpdmVSZWNvcmRpbmcsIHJlY29yZGluZywgIlRpbWVsaW5lTWFuYWdlciBh
Y3RpdmUgcmVjb3JkaW5nIHNob3VsZCBub3QgaGF2ZSBjaGFuZ2VkLiIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUcnVlKHJlY29yZGluZy5jYXB0dXJpbmcsICJUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgYmUgY2FwdHVyaW5nLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RGYWxzZShyZWNvcmRpbmcucmVhZG9ubHksICJUaW1lbGluZVJlY29yZGluZyBzaG91
bGQgbm90IGJlIHJlYWRvbmx5LiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UmVsb2FkIik7CisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQuVGVz
dFBhZ2VEaWRMb2FkKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uo
KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3Rv
cCIpOworICAgICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLnN0b3BDYXB0dXJpbmcoKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UoV0kudGltZWxpbmVNYW5hZ2VyLmlz
Q2FwdHVyaW5nKCksICJUaW1lbGluZU1hbmFnZXIgc2hvdWxkIG5vdCBiZSBjYXB0dXJpbmcuIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHJlY29yZGluZy5jYXB0dXJp
bmcsICJUaW1lbGluZVJlY29yZGluZyBzaG91bGQgbm90IGJlIGNhcHR1cmluZy4iKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLnJlYWRvbmx5LCAiVGlt
ZWxpbmVSZWNvcmRpbmcgc2hvdWxkIG5vdCBiZSByZWFkb25seS4iKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5nLmltcG9ydGVkLCAiVGltZWxpbmVSZWNv
cmRpbmcgc2hvdWxkIG5vdCBiZSBpbXBvcnRlZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghaXNOYU4ocmVjb3JkaW5nLnN0YXJ0VGltZSksICJUaW1lbGluZVJlY29y
ZGluZyBzaG91bGQgaGF2ZSBhIHN0YXJ0VGltZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghaXNOYU4ocmVjb3JkaW5nLmVuZFRpbWUpLCAiVGltZWxpbmVSZWNvcmRp
bmcgc2hvdWxkIGhhdmUgYSBlbmRUaW1lLiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJUaW1lbGluZVJlY29yZGluZy5wcm90
b3R5cGUuZXhwb3J0RGF0YSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBmb3IgYSByZWNv
cmRpbmcgZXhwb3J0LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQg
cmVjb3JkaW5nID0gV0kudGltZWxpbmVNYW5hZ2VyLmFjdGl2ZVJlY29yZGluZzsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFpc05hTihyZWNvcmRpbmcuc3RhcnRUaW1lKSwgIkZB
SUw6IFByZXZpb3VzIHRlc3QgbG9hZGluZyBhIHJlY29yZGluZyBmYWlsZWQuIik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghaXNOYU4ocmVjb3JkaW5nLmVuZFRpbWUpLCAiRkFJ
TDogUHJldmlvdXMgdGVzdCBsb2FkaW5nIGEgcmVjb3JkaW5nIGZhaWxlZC4iKTsKKworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUcnVlKHJlY29yZGluZy5jYW5FeHBvcnQoKSwgIlRp
bWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSBhYmxlIHRvIGV4cG9ydC4iKTsKKworICAgICAgICAg
ICAgZXhwb3J0RGF0YSA9IHJlY29yZGluZy5leHBvcnREYXRhKCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoZXhwb3J0RGF0YSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3Vs
ZCBiZSBhYmxlIHRvIHByb2R1Y2UgZXhwb3J0IGRhdGEuIik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoZXhwb3J0RGF0YS5yZWNvcmRzLmxlbmd0aCA+IDEwLCAiVGltZWxp
bmVSZWNvcmRpbmcgc2hvdWxkIGhhdmUgYXQgbGVhc3QgMTAgVGltZWxpbmUgUmVjb3Jkcy4iKTsK
KworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cG9ydCBEYXRhOiIpOworICAgICAg
ICAgICAgbGV0IGZpbHRlcktleXMgPSBuZXcgU2V0KFsic3RhcnRUaW1lIiwgImVuZFRpbWUiLCAi
dGltZSIsICJyZWNvcmRzIiwgImRpc3BsYXlOYW1lIl0pOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5qc29uKGV4cG9ydERhdGEsIChrZXksIHZhbHVlKSA9PiB7CisgICAgICAgICAgICAgICAg
aWYgKGZpbHRlcktleXMuaGFzKGtleSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPGZp
bHRlcmVkPiI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIlRpbWVsaW5lUmVjb3JkaW5nLmltcG9ydCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
VGVzdCBmb3IgYSByZWNvcmRpbmcgaW1wb3J0LiIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChleHBvcnREYXRhLCAiRkFJTDogUHJldmlv
dXMgdGVzdCBleHBvcnRpbmcgYSByZWNvcmRpbmcgZmFpbGVkLiIpOworCisgICAgICAgICAgICAv
LyBOT1RFOiBUaGlzIHJ1bnMgdGhlIHRvSlNPTiBoYW5kbGVycyBvbiB0aGUgdGltZWxpbmUgcmVj
b3JkcyBhbmQgb3RoZXIgbW9kZWwgb2JqZWN0cywKKyAgICAgICAgICAgIC8vIHdoaWNoIGlzIGlt
cG9ydGFudCBiZWNhdXNlIGltcG9ydGluZyBleHBlY3RzIHRoZSBzZXJpYWxpemVkIGZvcm0gb2Yg
dGhlIG9iamVjdHMsIG5vdAorICAgICAgICAgICAgLy8gYWN0dWFsIG1vZGVsIG9iamVjdHMuCisg
ICAgICAgICAgICBsZXQganNvbkRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGV4cG9y
dERhdGEpKTsKKworICAgICAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IDk5OTsKKyAgICAgICAg
ICAgIGxldCByZWNvcmRpbmcgPSBXSS5UaW1lbGluZVJlY29yZGluZy5pbXBvcnQoaWRlbnRpZmll
ciwganNvbkRhdGEsICJURVNUIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5v
dEVxdWFsKFdJLnRpbWVsaW5lTWFuYWdlci5hY3RpdmVSZWNvcmRpbmcsIHJlY29yZGluZywgIlRp
bWVsaW5lTWFuYWdlciBhY3RpdmUgcmVjb3JkaW5nIGlzIG5vdCB0aGlzIGltcG9ydGVkIHJlY29y
ZGluZy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocmVjb3JkaW5n
LmNhcHR1cmluZywgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBub3QgYmUgY2FwdHVyaW5nLiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUcnVlKHJlY29yZGluZy5yZWFkb25s
eSwgIlRpbWVsaW5lUmVjb3JkaW5nIHNob3VsZCBiZSByZWFkb25seS4iKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VHJ1ZShyZWNvcmRpbmcuaW1wb3J0ZWQsICJUaW1lbGluZVJl
Y29yZGluZyBzaG91bGQgYmUgaW1wb3J0ZWQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoIWlzTmFOKHJlY29yZGluZy5zdGFydFRpbWUpLCAiVGltZWxpbmVSZWNvcmRp
bmcgc2hvdWxkIGhhdmUgYSBzdGFydFRpbWUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoIWlzTmFOKHJlY29yZGluZy5lbmRUaW1lKSwgIlRpbWVsaW5lUmVjb3JkaW5n
IHNob3VsZCBoYXZlIGEgZW5kVGltZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwocmVjb3JkaW5nLmlkZW50aWZpZXIsIGlkZW50aWZpZXIsIGBUaW1lbGluZVJlY29y
ZGluZyBpZGVudGlmaWVyIHNob3VsZCBiZSAke2lkZW50aWZpZXJ9LmApOworCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRGlzcGxheSBOYW1lOiIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cocmVjb3JkaW5nLmRpc3BsYXlOYW1lKTsKKyAgICAgICAgfQorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGZvciB0aW1lbGluZSByZWNv
cmRpbmcuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXgg
YjA3MWQwN2U2YTYuLjBhNGI2YzQwYWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxODEgQEAKKzIwMTktMDMtMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZXMgLSBJbXBvcnQgLyBFeHBv
cnQgVGltZWxpbmUgUmVjb3JkaW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk1NzA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzE4ODkyMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaW1lbGlu
ZSBleHBvcnRpbmcgc2F2ZXMgVGltZWxpbmVSZWNvcmRpbmcgYW5kIFRpbWVsaW5lT3ZlcnZpZXcg
c3RhdGUuCisgICAgICAgIFRoZSBUaW1lbGluZVJlY29yZGluZyBpbmNsdWRlcyBhbGwga2luZHMg
b2YgbW9kZWwgb2JqZWN0cywgc3VjaCBhcworICAgICAgICByZWNvcmRzLCBtYXJrZXJzLCBtZW1v
cnkgcHJlc3N1cmUgZXZlbnRzLCBldGMuIEl0IGFsc28gaW5jbHVkZXMgcmF3CisgICAgICAgIHBy
b3RvY29sIGRhdGEsIHN1Y2ggYXMgc2NyaXB0IHByb2ZpbGVyIHNhbXBsZXMuIFRpbWVsaW5lT3Zl
cnZpZXcKKyAgICAgICAgaW5jbHVkZXMgc29tZSBvZiB0aGUgdmlldyBzdGF0ZSB0byByZXN0b3Jl
LCBzdWNoIGFzIHRoZSBzZWxlY3RlZAorICAgICAgICB0aW1lIHJhbmdlLCB6b29tIGxldmVsLCBh
bmQgc2VsZWN0ZWQgdGltZWxpbmUuCisKKyAgICAgICAgVGltZWxpbmUgaW1wb3J0aW5nIGNvbnN0
cnVjdHMgYSBuZXcgVGltZWxpbmVSZWNvcmRpbmcgYnkgcmVwbGF5aW5nCisgICAgICAgIHRoZSBy
ZWNvcmRzLCBtYXJrZXJzLCBhbmQgb3RoZXIgZXZlbnRzLCBhcyB3ZWxsIGFzIHJlLWluaXRpYWxp
emluZworICAgICAgICBtb3JlIHN0YXRlLiBUbyBmaW5hbGx5IGRpc3BsYXkgdGhlIGltcG9ydGVk
IHJlY29yZGluZywgdGhlIGNvbnRlbnQKKyAgICAgICAgdmlldyB3aWxsIGltbWVkaWF0ZWx5IGlu
aXRpYWxpemUgc3RhcnQvY3VycmVudC9lbmQgdGltZXMgYW5kIHRoZQorICAgICAgICBvdmVydmll
dyB3aWxsIHJlc3RvcmUgdGhlIHZpZXcgc3RhdGUuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgIE5ldyBzdHJpbmdzLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9UaW1lbGluZU1hbmFnZXIuanM6Cisg
ICAgICAgIChXSS5UaW1lbGluZU1hbmFnZXIuc3ludGhlc2l6ZUltcG9ydEVycm9yKToKKyAgICAg
ICAgKFdJLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUuaW1wb3J0UmVjb3JkaW5nKToKKyAgICAg
ICAgSW1wb3J0IEFQSS4KKworICAgICAgICAoV0kuVGltZWxpbmVNYW5hZ2VyLnByb3RvdHlwZS5z
Y3JpcHRQcm9maWxlclRyYWNraW5nQ29tcGxldGVkKToKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUg
c2FtcGxlcyBvbiB0aGUgcmVjb3JkaW5nIHZpYSBhIGRpZmZlcmVudCBwYXRoCisgICAgICAgIHNv
IHRoYXQgdGhlIGRhdGEgY2FuIGJlIHNhdmVkIGZvciBleHBvcnRpbmcuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29yZGluZy5qczoKKyAgICAgICAgKFdJLlRp
bWVsaW5lUmVjb3JkaW5nKToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLmltcG9ydCk6
CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuZXhwb3J0RGF0YSk6Cisg
ICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuZ2V0IGNhcHR1cmluZyk6Cisg
ICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUuZ2V0IGltcG9ydGVkKToKKyAg
ICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS51bmxvYWRlZCk6CisgICAgICAg
IChXSS5UaW1lbGluZVJlY29yZGluZy5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV0kuVGlt
ZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLmFkZEV2ZW50TWFya2VyKToKKyAgICAgICAgKFdJLlRp
bWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5hZGRSZWNvcmQpOgorICAgICAgICAoV0kuVGltZWxp
bmVSZWNvcmRpbmcucHJvdG90eXBlLmFkZE1lbW9yeVByZXNzdXJlRXZlbnQpOgorICAgICAgICAo
V0kuVGltZWxpbmVSZWNvcmRpbmcucHJvdG90eXBlLmluaXRpYWxpemVDYWxsaW5nQ29udGV4dFRy
ZWVzKToKKyAgICAgICAgKFdJLlRpbWVsaW5lUmVjb3JkaW5nLnByb3RvdHlwZS5jYW5FeHBvcnQp
OgorICAgICAgICBTYXZlIGRhdGEgYXQgdGhlIFRpbWVsaW5lUmVjb3JkaW5nIGxldmVsIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIGV4cG9ydC4KKyAgICAgICAgV2Ugb25seSBhbGxvdyBleHBvcnRpbmcg
YSBUaW1lbGluZVJlY29yZGluZyB0aGF0IGhhcyBzdGFydGVkL3N0b3BwZWQKKyAgICAgICAgYXQg
bGVhc3Qgb25jZSBhbmQgaXMgbm90IGN1cnJlbnRseSBjYXB0dXJpbmcuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanM6CisgICAg
ICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJLlRpbWVs
aW5lUmVjb3JkaW5nQ29udGVudFZpZXcucHJvdG90eXBlLmdldCBuYXZpZ2F0aW9uSXRlbXMpOgor
ICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuZ2V0IHN1
cHBvcnRzU2F2ZSk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LnBy
b3RvdHlwZS5nZXQgc2F2ZURhdGEpOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmdDb250
ZW50Vmlldy5wcm90b3R5cGUuc2hvd24pOgorICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmdD
b250ZW50Vmlldy5wcm90b3R5cGUuX2NhcHR1cmluZ1N0YXJ0ZWQpOgorICAgICAgICAoV0kuVGlt
ZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuX2NhcHR1cmluZ1N0b3BwZWQpOgor
ICAgICAgICAoV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuX2luaXRp
YWxpemVJbXBvcnRlZFJlY29yZGluZyk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3LnByb3RvdHlwZS5fZXhwb3J0VGltZWxpbmVSZWNvcmRpbmcpOgorICAgICAgICAo
V0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmlldy5wcm90b3R5cGUuX2ltcG9ydEJ1dHRvbk5h
dmlnYXRpb25JdGVtQ2xpY2tlZCk6CisgICAgICAgIChXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRl
bnRWaWV3LnByb3RvdHlwZS5fcmVjb3JkaW5nUmVzZXQpOgorICAgICAgICBBZGQgSW1wb3J0IGFu
ZCBFeHBvcnQgYnV0dG9ucyBpbiB0aGUgVGltZWxpbmUgbmF2aWdhdGlvbiBiYXIuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuanM6CisgICAgICAgIChX
SS5UaW1lbGluZU92ZXJ2aWV3KToKKyAgICAgICAgKFdJLlRpbWVsaW5lT3ZlcnZpZXcucHJvdG90
eXBlLmV4cG9ydERhdGEpOgorICAgICAgICAoV0kuVGltZWxpbmVPdmVydmlldy5wcm90b3R5cGUu
X2luc3RydW1lbnRBZGRlZCk6CisgICAgICAgIChXSS5UaW1lbGluZU92ZXJ2aWV3LnByb3RvdHlw
ZS5fcmVjb3JkaW5nSW1wb3J0ZWQpOgorICAgICAgICBXaGVuIGltcG9ydGluZyBhIHJlY29yZGlu
ZyB1cGRhdGUgdGhlIFRpbWVsaW5lT3ZlcnZpZXcgc3RhdGUKKyAgICAgICAgc29vbiBhZnRlcndh
cmRzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1BVVGltZWxpbmVSZWNvcmQu
anM6CisgICAgICAgIChXSS5DUFVUaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAgIChX
SS5DUFVUaW1lbGluZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9HYXJiYWdlQ29sbGVjdGlvbi5qczoKKyAgICAgICAgKFdJLkdhcmJhZ2VD
b2xsZWN0aW9uLmZyb21KU09OKToKKyAgICAgICAgKFdJLkdhcmJhZ2VDb2xsZWN0aW9uLnByb3Rv
dHlwZS50b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5Lmpz
OgorICAgICAgICAoV0kuUXVhZC5mcm9tSlNPTik6CisgICAgICAgIChXSS5RdWFkLnByb3RvdHlw
ZS50b0pTT04pOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBBbGxvY2F0aW9u
c1RpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAoV0kuSGVhcEFsbG9jYXRpb25zVGltZWxpbmVS
ZWNvcmQuZnJvbUpTT04pOgorICAgICAgICAoV0kuSGVhcEFsbG9jYXRpb25zVGltZWxpbmVSZWNv
cmQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5
b3V0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5MYXlvdXRUaW1lbGluZVJlY29yZC5m
cm9tSlNPTik6CisgICAgICAgIChXSS5MYXlvdXRUaW1lbGluZVJlY29yZC5wcm90b3R5cGUudG9K
U09OKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9NZWRpYVRpbWVsaW5lUmVjb3Jk
LmpzOgorICAgICAgICAoV0kuTWVkaWFUaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAg
IChXSS5NZWRpYVRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVByZXNzdXJlRXZlbnQuanM6CisgICAgICAgIChXSS5N
ZW1vcnlQcmVzc3VyZUV2ZW50LmZyb21KU09OKToKKyAgICAgICAgKFdJLk1lbW9yeVByZXNzdXJl
RXZlbnQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
TWVtb3J5VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5NZW1vcnlUaW1lbGluZVJlY29y
ZCk6CisgICAgICAgIChXSS5NZW1vcnlUaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAg
IChXSS5NZW1vcnlUaW1lbGluZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLmpzOgorICAg
ICAgICAoV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAg
IChXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkLnByb3RvdHlwZS50b0pTT04pOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlVGltZWxpbmVSZWNvcmQuanM6Cisg
ICAgICAgIChXSS5SZXNvdXJjZVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKToKKyAgICAgICAgKFdJ
LlJlc291cmNlVGltZWxpbmVSZWNvcmQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanM6CisgICAgICAgIChXSS5T
Y3JpcHRUaW1lbGluZVJlY29yZC5mcm9tSlNPTik6CisgICAgICAgIChXSS5TY3JpcHRUaW1lbGlu
ZVJlY29yZC5wcm90b3R5cGUudG9KU09OKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9UaW1lbGluZU1hcmtlci5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFya2VyLmZyb21KU09O
KToKKyAgICAgICAgKFdJLlRpbWVsaW5lTWFya2VyLnByb3RvdHlwZS50b0pTT04pOgorICAgICAg
ICAoV0kuVGltZWxpbmVNYXJrZXIucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFdJLlRp
bWVsaW5lTWFya2VyLnByb3RvdHlwZS5nZXQgZGV0YWlscyk6CisgICAgICAgIChXSS5UaW1lbGlu
ZU1hcmtlci5wcm90b3R5cGUuc2V0IHRpbWUpOgorICAgICAgICAoV0kuVGltZWxpbmVNYXJrZXIp
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzOgorICAg
ICAgICAoV0kuVGltZWxpbmVSZWNvcmQuZnJvbUpTT04pOgorICAgICAgICAoV0kuVGltZWxpbmVS
ZWNvcmQucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAgIEltcG9ydCAvIEV4cG9ydCB0b0pTT04g
LyBmcm9tSlNPTiBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIAorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoLmpzOgorICAgICAgICAoV0kuQ1BV
VGltZWxpbmVPdmVydmlld0dyYXBoKToKKyAgICAgICAgKFdJLkNQVVRpbWVsaW5lT3ZlcnZpZXdH
cmFwaC5wcm90b3R5cGUuX2NwdVRpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAoV0kuQ1BV
VGltZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGguanM6Cisg
ICAgICAgIChXSS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGgpOgorICAgICAgICAoV0kuTGF5
b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlwZS5fbGF5b3V0VGltZWxpbmVSZWNvcmRB
ZGRlZCk6CisgICAgICAgIChXSS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBl
Ll9wcm9jZXNzUmVjb3JkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRp
bWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lVmlldyk6CisgICAgICAg
IChXSS5MYXlvdXRUaW1lbGluZVZpZXcucHJvdG90eXBlLl9sYXlvdXRUaW1lbGluZVJlY29yZEFk
ZGVkKToKKyAgICAgICAgKFdJLkxheW91dFRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NS
ZWNvcmQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTWVkaWFUaW1lbGluZVZpZXcu
anM6CisgICAgICAgIChXSS5NZWRpYVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXSS5NZWRpYVRp
bWVsaW5lVmlldy5wcm90b3R5cGUuX2hhbmRsZVJlY29yZEFkZGVkKToKKyAgICAgICAgKFdJLk1l
ZGlhVGltZWxpbmVWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1JlY29yZCk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGguanM6CisgICAgICAg
IChXSS5NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGgpOgorICAgICAgICAoV0kuTWVtb3J5VGlt
ZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlwZS5fbWVtb3J5VGltZWxpbmVSZWNvcmRBZGRlZCk6
CisgICAgICAgIChXSS5NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLl9wcm9j
ZXNzUmVjb3JkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5l
Vmlldy5qczoKKyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXSS5N
ZW1vcnlUaW1lbGluZVZpZXcucHJvdG90eXBlLl9tZW1vcnlUaW1lbGluZVJlY29yZEFkZGVkKToK
KyAgICAgICAgKFdJLk1lbW9yeVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Byb2Nlc3NSZWNvcmQp
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdH
cmFwaC5qczoKKyAgICAgICAgKFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGgpOgorICAg
ICAgICAoV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUucmVzZXQpOgor
ICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUuX25ldHdv
cmtUaW1lbGluZVJlY29yZEFkZGVkKToKKyAgICAgICAgKFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2
aWV3R3JhcGgucHJvdG90eXBlLl9wcm9jZXNzUmVjb3JkKToKKyAgICAgICAgKFdJLk5ldHdvcmtU
aW1lbGluZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLl9uZXR3b3JrVGltZWxpbmVSZWNvcmRBZGRl
ZC5jb21wYXJlQnlTdGFydFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdJLk5ldHdvcmtUaW1lbGlu
ZVZpZXcpOgorICAgICAgICAoV0kuTmV0d29ya1RpbWVsaW5lVmlldy5wcm90b3R5cGUuX25ldHdv
cmtUaW1lbGluZVJlY29yZEFkZGVkKToKKyAgICAgICAgKFdJLk5ldHdvcmtUaW1lbGluZVZpZXcu
cHJvdG90eXBlLl9wcm9jZXNzUmVjb3JkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3LmpzOgorICAgICAgICAoV0kuUmVuZGVyaW5nRnJh
bWVUaW1lbGluZVZpZXcpOgorICAgICAgICAoV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcu
cHJvdG90eXBlLl9yZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkQWRkZWQpOgorICAgICAgICAo
V0kuUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcucHJvdG90eXBlLl9wcm9jZXNzUmVjb3JkKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcu
anM6CisgICAgICAgIChXSS5TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3KToKKyAgICAgICAgKFdJ
LlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcucHJvdG90eXBlLl9zY3JpcHRUaW1lbGluZVJlY29y
ZEFkZGVkKToKKyAgICAgICAgKFdJLlNjcmlwdERldGFpbHNUaW1lbGluZVZpZXcucHJvdG90eXBl
Ll9wcm9jZXNzUmVjb3JkKToKKyAgICAgICAgQWRkIGNvbW1vbiBfcHJvY2Vzc1JlY29yZCBwYXRo
IHRvIGVhY2ggdGltZWxpbmUgT3ZlcnZpZXdHcmFwaCBhbmQgVGltZWxpbmVWaWV3LgorICAgICAg
ICBCeSBjYWxsaW5nIHRoaXMgaW4gY29uc3RydWN0aW9uIHdlIHBvcHVsYXRlIGdyYXBocyB3aXRo
IFRpbWVsaW5lUmVjb3JkcyB0aGF0CisgICAgICAgIG1heSBoYXZlIGFscmVhZHkgZXhpc3RlZC4g
VGhpcyBpcyBuZWNlc3NhcnkgZm9yIGltcG9ydHMsIGJ1dCB0aGlzIGFsc28gZml4ZXMKKyAgICAg
ICAgdGhlIGNhc2Ugd2hlcmUgeW91IGVuYWJsZSBhIHRpbWVsaW5lIHRoYXQgaGFkIGRhdGEgYW5k
IGl0IGRpZG4ndCBzaG93IGRhdGEuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xh
eW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jc3M6CisgICAgICAgICgudGltZWxpbmUtb3ZlcnZp
ZXctZ3JhcGgubGF5b3V0LW92ZXJ2aWV3ID4gLmdyYXBoLXJvdyk6CisgICAgICAgICgudGltZWxp
bmUtb3ZlcnZpZXctZ3JhcGgubGF5b3V0LW92ZXJ2aWV3ID4gLmdyYXBoLXJvdyA+IC50aW1lbGlu
ZS1yZWNvcmQtYmFyKToKKyAgICAgICAgKC50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQt
b3ZlcnZpZXcgPiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5lLXJlY29yZC1iYXIgPiAuc2VnbWVudCk6
CisgICAgICAgICgudGltZWxpbmUtb3ZlcnZpZXctZ3JhcGgubGF5b3V0ID4gLmdyYXBoLXJvdyk6
IERlbGV0ZWQuCisgICAgICAgICgudGltZWxpbmUtb3ZlcnZpZXctZ3JhcGgubGF5b3V0ID4gLmdy
YXBoLXJvdyA+IC50aW1lbGluZS1yZWNvcmQtYmFyKTogRGVsZXRlZC4KKyAgICAgICAgKC50aW1l
bGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3JhcGgtcm93ID4gLnRpbWVsaW5lLXJlY29y
ZC1iYXIgPiAuc2VnbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9UaW1lbGluZVJlY29yZEJhci5jc3M6CisgICAgICAgICgudGltZWxpbmUtcmVjb3JkLWJhci50
aW1lbGluZS1yZWNvcmQtdHlwZS1sYXlvdXQucGFpbnQgPiAuc2VnbWVudCwpOgorICAgICAgICAo
LnRpbWVsaW5lLXJlY29yZC1iYXIudGltZWxpbmUtcmVjb3JkLXR5cGUtbGF5b3V0LmxheW91dC10
aW1lbGluZS1yZWNvcmQtcGFpbnQgPiAuc2VnbWVudCwpOiBEZWxldGVkLgorICAgICAgICBXZSBz
aW1wbGlmaWVkIHNvbWUgb2YgdGhlIHN1Yi1yZWNvcmQgdHlwZSBlbnVtIHN0cmluZ3MuIFRvIGRv
IHRoaXMgd2UgbmVlZGVkIHRvIGNoYW5nZQorICAgICAgICAibGF5b3V0IiB0byAibGF5b3V0LW92
ZXJ2aWV3IiB0byBhdm9pZCBhIGNvbmZsaWN0LgorCiAyMDE5LTAzLTE0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29y
ayAtIEhBUiBJbXBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6
YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGJiYTVh
NjY5OThiLi5jMGNlOTUwM2JmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBA
IC01NTIsNyArNTUyLDkgQEAgbG9jYWxpemVkU3RyaW5nc1siSW1hZ2VzIl0gPSAiSW1hZ2VzIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkltbWVkaWF0ZSBQYXVzZSBSZXF1ZXN0ZWQiXSA9ICJJbW1lZGlh
dGUgUGF1c2UgUmVxdWVzdGVkIjsKIGxvY2FsaXplZFN0cmluZ3NbIkltcG9ydCJdID0gIkltcG9y
dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCJdID0gIkltcG9ydGVkIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIkltcG9ydGVkIC0gJXMiXSA9ICJJbXBvcnRlZCAtICVzIjsKIGxvY2FsaXplZFN0
cmluZ3NbIkltcG9ydGVkIFJlY29yZGluZ3MiXSA9ICJJbXBvcnRlZCBSZWNvcmRpbmdzIjsKK2xv
Y2FsaXplZFN0cmluZ3NbIkltcG9ydGVkIFRpbWVsaW5lIFJlY29yZGluZyJdID0gIkltcG9ydGVk
IFRpbWVsaW5lIFJlY29yZGluZyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJJbXBvcnRlZCBcdTIwMTQg
JXMiXSA9ICJJbXBvcnRlZCBcdTIwMTQgJXMiOwogbG9jYWxpemVkU3RyaW5nc1siSW5jb21wbGV0
ZSJdID0gIkluY29tcGxldGUiOwogbG9jYWxpemVkU3RyaW5nc1siSW5kZW50IHdpZHRoOiJdID0g
IkluZGVudCB3aWR0aDoiOwpAQCAtMTA1Miw2ICsxMDU0LDcgQEAgbG9jYWxpemVkU3RyaW5nc1si
VGltZSBzcGVudCBvbiB0aGUgbWFpbiB0aHJlYWQiXSA9ICJUaW1lIHNwZW50IG9uIHRoZSBtYWlu
IHRocmUKIGxvY2FsaXplZFN0cmluZ3NbIlRpbWUgdG8gRmlyc3QgQnl0ZSJdID0gIlRpbWUgdG8g
Rmlyc3QgQnl0ZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJUaW1lbGluZSJdID0gIlRpbWVsaW5lIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlRpbWVsaW5lIFJlY29yZGluZyAlZCJdID0gIlRpbWVsaW5lIFJl
Y29yZGluZyAlZCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJUaW1lbGluZSBSZWNvcmRpbmcgSW1wb3J0
IEVycm9yOiAlcyJdID0gIlRpbWVsaW5lIFJlY29yZGluZyBJbXBvcnQgRXJyb3I6ICVzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIlRpbWVsaW5lcyJdID0gIlRpbWVsaW5lcyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJUaW1lciAlZCBGaXJlZCJdID0gIlRpbWVyICVkIEZpcmVkIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlRpbWVyICVkIEluc3RhbGxlZCJdID0gIlRpbWVyICVkIEluc3RhbGxlZCI7CkBAIC0xMTg2
LDQgKzExODksNSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJ0b2dnbGUiXSA9ICJ0b2dnbGUiOwogbG9j
YWxpemVkU3RyaW5nc1sidW5rbm93biAlcyBcdTAwMjIlc1x1MDAyMiJdID0gInVua25vd24gJXMg
XHUwMDIyJXNcdTAwMjIiOwogbG9jYWxpemVkU3RyaW5nc1sidW5zdXBwb3J0ZWQgJXMiXSA9ICJ1
bnN1cHBvcnRlZCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJ1bnN1cHBvcnRlZCBIQVIgdmVyc2lv
biJdID0gInVuc3VwcG9ydGVkIEhBUiB2ZXJzaW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbInVuc3Vw
cG9ydGVkIHZlcnNpb24iXSA9ICJ1bnN1cHBvcnRlZCB2ZXJzaW9uIjsKIGxvY2FsaXplZFN0cmlu
Z3NbInZhbHVlIl0gPSAidmFsdWUiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDRkNzQzYWJiYTYwLi5mY2Y5YTJlNjUzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpA
QCAtMjczNiw3ICsyNzM2LDcgQEAgV0kuZWxlbWVudERyYWdFbmQgPSBmdW5jdGlvbihldmVudCkK
IAogV0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3ID0gZnVuY3Rpb24obWVzc2FnZSwgaXNFcnJvcikK
IHsKLSAgICB2YXIgbWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICBsZXQgbWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKICAgICBtZXNzYWdlRWxlbWVudC5jbGFzc05hbWUgPSAibWVzc2FnZS10ZXh0LXZpZXciOwog
ICAgIGlmIChpc0Vycm9yKQogICAgICAgICBtZXNzYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJl
cnJvciIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDlmM2VkMWJl
ZDY1Li5kOGE1Mzg5ZTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvVGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1RpbWVsaW5lTWFuYWdlci5qcwpA
QCAtMTM2LDYgKzEzNiwyMSBAQCBXSS5UaW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIHR5cGVzOwogICAgIH0KIAor
ICAgIHN0YXRpYyBzeW50aGVzaXplSW1wb3J0RXJyb3IobWVzc2FnZSkKKyAgICB7CisgICAgICAg
IG1lc3NhZ2UgPSBXSS5VSVN0cmluZygiVGltZWxpbmUgUmVjb3JkaW5nIEltcG9ydCBFcnJvcjog
JXMiKS5mb3JtYXQobWVzc2FnZSk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5JbnNwZWN0b3JUZXN0
KSB7CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IGNvbnNvbGVNZXNzYWdlID0gbmV3IFdJLkNv
bnNvbGVNZXNzYWdlKFdJLm1haW5UYXJnZXQsIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3Vy
Y2UuT3RoZXIsIFdJLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvciwgbWVzc2FnZSk7
CisgICAgICAgIGNvbnNvbGVNZXNzYWdlLnNob3VsZFJldmVhbENvbnNvbGUgPSB0cnVlOworCisg
ICAgICAgIFdJLmNvbnNvbGVMb2dWaWV3Q29udHJvbGxlci5hcHBlbmRDb25zb2xlTWVzc2FnZShj
b25zb2xlTWVzc2FnZSk7CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICByZXNldCgpCkBA
IC0yNTksNiArMjc0LDUyIEBAIFdJLlRpbWVsaW5lTWFuYWdlciA9IGNsYXNzIFRpbWVsaW5lTWFu
YWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9hY3RpdmVSZWNvcmRpbmcgPSBu
dWxsOwogICAgIH0KIAorICAgIHByb2Nlc3NKU09OKHtmaWxlbmFtZSwganNvbiwgZXJyb3J9KQor
ICAgIHsKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBXSS5UaW1lbGluZU1hbmFn
ZXIuc3ludGhlc2l6ZUltcG9ydEVycm9yKGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2YganNvbiAhPT0gIm9iamVjdCIgfHwganNvbiA9
PT0gbnVsbCkgeworICAgICAgICAgICAgV0kuVGltZWxpbmVNYW5hZ2VyLnN5bnRoZXNpemVJbXBv
cnRFcnJvcihXSS5VSVN0cmluZygiaW52YWxpZCBKU09OIikpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFqc29uLnJlY29yZGluZyAgfHwgdHlwZW9mIGpz
b24ucmVjb3JkaW5nICE9PSAib2JqZWN0IiB8fCAhanNvbi5vdmVydmlldyB8fCB0eXBlb2YganNv
bi5vdmVydmlldyAhPT0gIm9iamVjdCIgfHwgdHlwZW9mIGpzb24udmVyc2lvbiAhPT0gIm51bWJl
ciIpIHsKKyAgICAgICAgICAgIFdJLlRpbWVsaW5lTWFuYWdlci5zeW50aGVzaXplSW1wb3J0RXJy
b3IoV0kuVUlTdHJpbmcoImludmFsaWQgSlNPTiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChqc29uLnZlcnNpb24gIT09IFdJLlRpbWVsaW5lUmVjb3Jk
aW5nLlNlcmlhbGl6YXRpb25WZXJzaW9uKSB7CisgICAgICAgICAgICBXSS5OZXR3b3JrTWFuYWdl
ci5zeW50aGVzaXplSW1wb3J0RXJyb3IoV0kuVUlTdHJpbmcoInVuc3VwcG9ydGVkIHZlcnNpb24i
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsZXQgcmVjb3Jk
aW5nRGF0YSA9IGpzb24ucmVjb3JkaW5nOworICAgICAgICBsZXQgb3ZlcnZpZXdEYXRhID0ganNv
bi5vdmVydmlldzsKKworICAgICAgICBsZXQgaWRlbnRpZmllciA9IHRoaXMuX25leHRSZWNvcmRp
bmdJZGVudGlmaWVyKys7CisgICAgICAgIGxldCBuZXdSZWNvcmRpbmcgPSBXSS5UaW1lbGluZVJl
Y29yZGluZy5pbXBvcnQoaWRlbnRpZmllciwgcmVjb3JkaW5nRGF0YSwgZmlsZW5hbWUpOworICAg
ICAgICB0aGlzLl9yZWNvcmRpbmdzLnB1c2gobmV3UmVjb3JkaW5nKTsKKworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5UaW1lbGluZU1hbmFnZXIuRXZlbnQuUmVjb3Jk
aW5nQ3JlYXRlZCwge3JlY29yZGluZzogbmV3UmVjb3JkaW5nfSk7CisKKyAgICAgICAgaWYgKHRo
aXMuX2lzQ2FwdHVyaW5nKQorICAgICAgICAgICAgdGhpcy5zdG9wQ2FwdHVyaW5nKCk7CisKKyAg
ICAgICAgbGV0IG9sZFJlY29yZGluZyA9IHRoaXMuX2FjdGl2ZVJlY29yZGluZzsKKyAgICAgICAg
aWYgKG9sZFJlY29yZGluZykgeworICAgICAgICAgICAgY29uc3QgaW1wb3J0aW5nID0gdHJ1ZTsK
KyAgICAgICAgICAgIG9sZFJlY29yZGluZy51bmxvYWRlZChpbXBvcnRpbmcpOworICAgICAgICB9
CisKKyAgICAgICAgdGhpcy5fYWN0aXZlUmVjb3JkaW5nID0gbmV3UmVjb3JkaW5nOworCisgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLlRpbWVsaW5lTWFuYWdlci5FdmVu
dC5SZWNvcmRpbmdMb2FkZWQsIHtvbGRSZWNvcmRpbmd9KTsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuVGltZWxpbmVNYW5hZ2VyLkV2ZW50LlJlY29yZGluZ0ltcG9y
dGVkLCB7b3ZlcnZpZXdEYXRhfSk7CisgICAgfQorCiAgICAgY29tcHV0ZUVsYXBzZWRUaW1lKHRp
bWVzdGFtcCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fYWN0aXZlUmVjb3JkaW5nKQpAQCAt
MTAyNiw5ICsxMDg3LDYgQEAgV0kuVGltZWxpbmVNYW5hZ2VyID0gY2xhc3MgVGltZWxpbmVNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmIChzYW1wbGVzKSB7CiAgICAgICAgICAg
ICBsZXQge3N0YWNrVHJhY2VzfSA9IHNhbXBsZXM7CiAgICAgICAgICAgICBsZXQgdG9wRG93bkNh
bGxpbmdDb250ZXh0VHJlZSA9IHRoaXMuYWN0aXZlUmVjb3JkaW5nLnRvcERvd25DYWxsaW5nQ29u
dGV4dFRyZWU7Ci0gICAgICAgICAgICBsZXQgYm90dG9tVXBDYWxsaW5nQ29udGV4dFRyZWUgPSB0
aGlzLmFjdGl2ZVJlY29yZGluZy5ib3R0b21VcENhbGxpbmdDb250ZXh0VHJlZTsKLSAgICAgICAg
ICAgIGxldCB0b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlID0gdGhpcy5hY3Rp
dmVSZWNvcmRpbmcudG9wRnVuY3Rpb25zVG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZTsKLSAgICAg
ICAgICAgIGxldCB0b3BGdW5jdGlvbnNCb3R0b21VcENhbGxpbmdDb250ZXh0VHJlZSA9IHRoaXMu
YWN0aXZlUmVjb3JkaW5nLnRvcEZ1bmN0aW9uc0JvdHRvbVVwQ2FsbGluZ0NvbnRleHRUcmVlOwog
CiAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgYSBwZXItc2FtcGxlIGR1cmF0aW9uLgogICAgICAg
ICAgICAgbGV0IHRpbWVzdGFtcEluZGV4ID0gMDsKQEAgLTEwNjIsMTIgKzExMjAsNyBAQCBXSS5U
aW1lbGluZU1hbmFnZXIgPSBjbGFzcyBUaW1lbGluZU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBJbmRleCA8IHRpbWVzdGFtcENvdW50KQogICAgICAg
ICAgICAgICAgIHNhbXBsZUR1cmF0aW9ucy5maWxsKGRlZmF1bHREdXJhdGlvbiwgc2FtcGxlRHVy
YXRpb25JbmRleCk7CiAKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhY2tUcmFj
ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICB0b3BEb3duQ2FsbGluZ0NvbnRleHRU
cmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSwgc2FtcGxlRHVyYXRp
b25zW2ldKTsKLSAgICAgICAgICAgICAgICBib3R0b21VcENhbGxpbmdDb250ZXh0VHJlZS51cGRh
dGVUcmVlV2l0aFN0YWNrVHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7
Ci0gICAgICAgICAgICAgICAgdG9wRnVuY3Rpb25zVG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZS51
cGRhdGVUcmVlV2l0aFN0YWNrVHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tp
XSk7Ci0gICAgICAgICAgICAgICAgdG9wRnVuY3Rpb25zQm90dG9tVXBDYWxsaW5nQ29udGV4dFRy
ZWUudXBkYXRlVHJlZVdpdGhTdGFja1RyYWNlKHN0YWNrVHJhY2VzW2ldLCBzYW1wbGVEdXJhdGlv
bnNbaV0pOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5hY3RpdmVSZWNvcmRpbmcu
aW5pdGlhbGl6ZUNhbGxpbmdDb250ZXh0VHJlZXMoc3RhY2tUcmFjZXMsIHNhbXBsZUR1cmF0aW9u
cyk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRyYW5zZm9ybWF0aW9uIHNob3VsZCBu
b3QgYmUgbmVlZGVkIGFmdGVyIGludHJvZHVjaW5nIFByb2ZpbGVWaWV3LgogICAgICAgICAgICAg
Ly8gT25jZSB3ZSBlbGltaW5hdGUgUHJvZmlsZU5vZGVUcmVlRWxlbWVudHMgYW5kIFByb2ZpbGVO
b2RlRGF0YUdyaWROb2Rlcy4KQEAgLTEyMTMsNiArMTI2Niw3IEBAIFdJLlRpbWVsaW5lTWFuYWdl
ciA9IGNsYXNzIFRpbWVsaW5lTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogV0kuVGltZWxpbmVN
YW5hZ2VyLkV2ZW50ID0gewogICAgIFJlY29yZGluZ0NyZWF0ZWQ6ICJ0aW1lbGluZS1tYW5hZ2Vy
LXJlY29yZGluZy1jcmVhdGVkIiwKICAgICBSZWNvcmRpbmdMb2FkZWQ6ICJ0aW1lbGluZS1tYW5h
Z2VyLXJlY29yZGluZy1sb2FkZWQiLAorICAgIFJlY29yZGluZ0ltcG9ydGVkOiAidGltZWxpbmUt
bWFuYWdlci1yZWNvcmRpbmctaW1wb3J0ZWQiLAogICAgIENhcHR1cmluZ1dpbGxTdGFydDogInRp
bWVsaW5lLW1hbmFnZXItY2FwdHVyaW5nLXdpbGwtc3RhcnQiLAogICAgIENhcHR1cmluZ1N0YXJ0
ZWQ6ICJ0aW1lbGluZS1tYW5hZ2VyLWNhcHR1cmluZy1zdGFydGVkIiwKICAgICBDYXB0dXJpbmdT
dG9wcGVkOiAidGltZWxpbmUtbWFuYWdlci1jYXB0dXJpbmctc3RvcHBlZCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBkMWMyNjA1NDk5Ni4u
NDFkYjdkZTYxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKQEAgLTIyMiw2ICsyMjIsNyBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvVGltZWxpbmVSZWNvcmRCYXIuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL1RpbWVsaW5lUmVjb3JkRnJhbWUuY3NzIj4KICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcu
Y3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1RpbWVsaW5lUmVj
b3JkaW5nSW1wb3J0ZWRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9UaW1lbGluZVJ1bGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJWaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9UaW1lbGluZVZpZXcuY3NzIj4KQEAgLTgyNiw2ICs4Mjcs
NyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9UaW1lbGluZVJlY29yZEZyYW1lLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvVGltZWxpbmVSZWNvcmRpbmdDb250ZW50Vmll
dy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1RpbWVsaW5lUmVjb3JkaW5n
UHJvZ3Jlc3NWaWV3LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvVGltZWxp
bmVSZWNvcmRpbmdJbXBvcnRlZFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJW
aWV3cy9UaW1lbGluZVJ1bGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
VGl0bGVWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvVG9nZ2xlQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NQVVRpbWVsaW5lUmVjb3JkLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NQVVRpbWVsaW5lUmVjb3Jk
LmpzCmluZGV4IGVhMDdiZmMzMTM2Li4yMTY2ODkxZTE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NQVVRpbWVsaW5lUmVjb3JkLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DUFVUaW1lbGlu
ZVJlY29yZC5qcwpAQCAtMzYsOCArMzYsNyBAQCBXSS5DUFVUaW1lbGluZVJlY29yZCA9IGNsYXNz
IENQVVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKIAogICAgICAgICB0
aGlzLl90aW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAgICAgICAgIHRoaXMuX3VzYWdlID0gdXNhZ2U7
Ci0KLSAgICAgICAgdGhyZWFkcyA9IHRocmVhZHMgfHwgW107CisgICAgICAgIHRoaXMuX3RocmVh
ZHMgPSB0aHJlYWRzIHx8IFtdOwogCiAgICAgICAgIHRoaXMuX21haW5UaHJlYWRVc2FnZSA9IDA7
CiAgICAgICAgIHRoaXMuX3dlYmtpdFRocmVhZFVzYWdlID0gMDsKQEAgLTQ1LDcgKzQ0LDcgQEAg
V0kuQ1BVVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBDUFVUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJ
LlRpbWVsaW5lUmVjb3JkCiAgICAgICAgIHRoaXMuX3Vua25vd25UaHJlYWRVc2FnZSA9IDA7CiAg
ICAgICAgIHRoaXMuX3dvcmtlcnNEYXRhID0gbnVsbDsKIAotICAgICAgICBmb3IgKGxldCB0aHJl
YWQgb2YgdGhyZWFkcykgeworICAgICAgICBmb3IgKGxldCB0aHJlYWQgb2YgdGhpcy5fdGhyZWFk
cykgewogICAgICAgICAgICAgaWYgKHRocmVhZC50eXBlID09PSBJbnNwZWN0b3JCYWNrZW5kLmRv
bWFpbnMuQ1BVUHJvZmlsZXIuVGhyZWFkSW5mb1R5cGUuTWFpbikgewogICAgICAgICAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9tYWluVGhyZWFkVXNhZ2UsICJUaGVyZSBzaG91bGQgb25s
eSBiZSBvbmUgbWFpbiB0aHJlYWQuIik7CiAgICAgICAgICAgICAgICAgdGhpcy5fbWFpblRocmVh
ZFVzYWdlICs9IHRocmVhZC51c2FnZTsKQEAgLTY5LDYgKzY4LDIzIEBAIFdJLkNQVVRpbWVsaW5l
UmVjb3JkID0gY2xhc3MgQ1BVVGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29y
ZAogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0
aWMgZnJvbUpTT04oanNvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgV0kuQ1BVVGltZWxp
bmVSZWNvcmQoanNvbik7CisgICAgfQorCisgICAgdG9KU09OKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICB0aW1lc3Rh
bXA6IHRoaXMuX3RpbWVzdGFtcCwKKyAgICAgICAgICAgIHVzYWdlOiB0aGlzLl91c2FnZSwKKyAg
ICAgICAgICAgIHRocmVhZHM6IHRoaXMuX3RocmVhZHMsCisgICAgICAgIH07CisgICAgfQorCiAg
ICAgLy8gUHVibGljCiAKICAgICBnZXQgdGltZXN0YW1wKCkgeyByZXR1cm4gdGhpcy5fdGltZXN0
YW1wOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMKaW5kZXggOTFlNjcyMzY3MDMuLmQ5
ZmZiYzUyZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvR2FyYmFnZUNvbGxlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dhcmJhZ2VDb2xsZWN0aW9uLmpzCkBAIC00NSw2ICs0NSwy
NCBAQCBXSS5HYXJiYWdlQ29sbGVjdGlvbiA9IGNsYXNzIEdhcmJhZ2VDb2xsZWN0aW9uCiAgICAg
ICAgIHJldHVybiBuZXcgV0kuR2FyYmFnZUNvbGxlY3Rpb24odHlwZSwgcGF5bG9hZC5zdGFydFRp
bWUsIHBheWxvYWQuZW5kVGltZSk7CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisK
KyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAgICB7CisgICAgICAgIGxldCB7dHlwZSwgc3Rh
cnRUaW1lLCBlbmRUaW1lfSA9IGpzb247CisgICAgICAgIHJldHVybiBuZXcgV0kuR2FyYmFnZUNv
bGxlY3Rpb24odHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKKyAgICB9CisKKyAgICB0b0pTT04o
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIF9fdHlwZTogIkdhcmJhZ2VD
b2xsZWN0aW9uIiwKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAgICAgICAgIHN0
YXJ0VGltZTogdGhpcy5zdGFydFRpbWUsCisgICAgICAgICAgICBlbmRUaW1lOiB0aGlzLmVuZFRp
bWUsCisgICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdHlwZSgp
IHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KQEAgLTU4LDYgKzc2LDYgQEAgV0kuR2FyYmFnZUNvbGxl
Y3Rpb24gPSBjbGFzcyBHYXJiYWdlQ29sbGVjdGlvbgogfTsKIAogV0kuR2FyYmFnZUNvbGxlY3Rp
b24uVHlwZSA9IHsKLSAgICBQYXJ0aWFsOiBTeW1ib2woIlBhcnRpYWwiKSwKLSAgICBGdWxsOiBT
eW1ib2woIkZ1bGwiKQorICAgIFBhcnRpYWw6ICJwYXJ0aWFsIiwKKyAgICBGdWxsOiAiZnVsbCIs
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0dlb21ldHJ5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0dlb21ldHJ5LmpzCmluZGV4IDIwNGNmM2ZiMDNjLi45Zjc5OGIzYTY3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRy
eS5qcwpAQCAtMjg0LDYgKzI4NCwxOCBAQCBXSS5RdWFkID0gY2xhc3MgUXVhZAogICAgICAgICB0
aGlzLmhlaWdodCA9IE1hdGgucm91bmQoTWF0aC5zcXJ0KE1hdGgucG93KHF1YWRbMF0gLSBxdWFk
WzZdLCAyKSArIE1hdGgucG93KHF1YWRbMV0gLSBxdWFkWzddLCAyKSkpOwogICAgIH0KIAorICAg
IC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAgewor
ICAgICAgICByZXR1cm4gbmV3IFdJLlF1YWQoanNvbik7CisgICAgfQorCisgICAgdG9KU09OKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnRvUHJvdG9jb2woKTsKKyAgICB9CisKICAgICAv
LyBQdWJsaWMKIAogICAgIHRvUHJvdG9jb2woKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3Jk
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hlYXBBbGxv
Y2F0aW9uc1RpbWVsaW5lUmVjb3JkLmpzCmluZGV4IGQxMGMwYjkyZDZkLi4xMTE0MTdmYWQ3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0hl
YXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZC5qcwpA
QCAtMzYsNiArMzYsMzYgQEAgV0kuSGVhcEFsbG9jYXRpb25zVGltZWxpbmVSZWNvcmQgPSBjbGFz
cyBIZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZCBleHRlbmRzIFcKICAgICAgICAgdGhpcy5f
aGVhcFNuYXBzaG90ID0gaGVhcFNuYXBzaG90OwogICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4
cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpzb24pCisgICAgeworICAgICAgICAvLyBOT1RF
OiBUaGlzIGp1c3QgZ29lcyB0aHJvdWdoIGFuZCBnZW5lcmF0ZXMgYSBuZXcgaGVhcCBzbmFwc2hv
dCwKKyAgICAgICAgLy8gaXQgaXMgbm90IHBlcmZlY3QgYnV0IGRvZXMgd2hhdCB3ZSB3YW50LiBJ
dCBhc3luY2hyb25vdXNseSBjcmVhdGVzCisgICAgICAgIC8vIGEgaGVhcCBzbmFwc2hvdCBhdCB0
aGUgcmlnaHQgdGltZSwgYW5kIGluc2VydCBpdCBpbnRvIHRoZSBhY3RpdmUKKyAgICAgICAgLy8g
cmVjb3JkaW5nLCB3aGljaCBvbiBhbiBpbXBvcnQgc2hvdWxkIGJlIHRoZSBuZXdseSBpbXBvcnRl
ZCByZWNvcmRpbmcuCisgICAgICAgIGxldCB7dGltZXN0YW1wLCB0aXRsZSwgc25hcHNob3RTdHJp
bmdEYXRhfSA9IGpzb247CisKKyAgICAgICAgbGV0IHdvcmtlclByb3h5ID0gV0kuSGVhcFNuYXBz
aG90V29ya2VyUHJveHkuc2luZ2xldG9uKCk7CisgICAgICAgIHdvcmtlclByb3h5LmNyZWF0ZUlt
cG9ydGVkU25hcHNob3Qoc25hcHNob3RTdHJpbmdEYXRhLCB0aXRsZSwgKHtvYmplY3RJZCwgc25h
cHNob3Q6IHNlcmlhbGl6ZWRTbmFwc2hvdH0pID0+IHsKKyAgICAgICAgICAgIGxldCBzbmFwc2hv
dCA9IFdJLkhlYXBTbmFwc2hvdFByb3h5LmRlc2VyaWFsaXplKG9iamVjdElkLCBzZXJpYWxpemVk
U25hcHNob3QpOworICAgICAgICAgICAgc25hcHNob3Quc25hcHNob3RTdHJpbmdEYXRhID0gc25h
cHNob3RTdHJpbmdEYXRhOworICAgICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLmhlYXBTbmFw
c2hvdEFkZGVkKHRpbWVzdGFtcCwgc25hcHNob3QpOworICAgICAgICB9KTsKKworICAgICAgICBy
ZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAgICAgICAgIHRpbWVzdGFtcDog
dGhpcy5fdGltZXN0YW1wLAorICAgICAgICAgICAgdGl0bGU6IFdJLlRpbWVsaW5lVGFiQ29udGVu
dFZpZXcuZGlzcGxheU5hbWVGb3JSZWNvcmQodGhpcyksCisgICAgICAgICAgICBzbmFwc2hvdFN0
cmluZ0RhdGE6IHRoaXMuX2hlYXBTbmFwc2hvdC5zbmFwc2hvdFN0cmluZ0RhdGEsCisgICAgICAg
IH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdGltZXN0YW1wKCkgeyByZXR1
cm4gdGhpcy5fdGltZXN0YW1wOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMK
aW5kZXggOTVmOGFmNWE2NTIuLmZhYTRiNmMyZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTGF5b3V0VGltZWxpbmVSZWNvcmQuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0xheW91dFRpbWVs
aW5lUmVjb3JkLmpzCkBAIC02MSw2ICs2MSwyOSBAQCBXSS5MYXlvdXRUaW1lbGluZVJlY29yZCA9
IGNsYXNzIExheW91dFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKICAg
ICAgICAgfQogICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZy
b21KU09OKGpzb24pCisgICAgeworICAgICAgICBsZXQge2V2ZW50VHlwZSwgc3RhcnRUaW1lLCBl
bmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIHF1YWR9ID0ganNvbjsKKyAg
ICAgICAgcXVhZCA9IHF1YWQgPyBXSS5RdWFkLmZyb21KU09OKHF1YWQpIDogbnVsbDsKKyAgICAg
ICAgcmV0dXJuIG5ldyBXSS5MYXlvdXRUaW1lbGluZVJlY29yZChldmVudFR5cGUsIHN0YXJ0VGlt
ZSwgZW5kVGltZSwgY2FsbEZyYW1lcywgc291cmNlQ29kZUxvY2F0aW9uLCBxdWFkKTsKKyAgICB9
CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IENhbGxGcmFtZXMKKyAg
ICAgICAgLy8gRklYTUU6IFNvdXJjZUNvZGVMb2NhdGlvbgorCisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICBldmVudFR5cGU6IHRoaXMu
X2V2ZW50VHlwZSwKKyAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5zdGFydFRpbWUsCisgICAg
ICAgICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUsCisgICAgICAgICAgICBxdWFkOiB0aGlzLl9x
dWFkIHx8IHVuZGVmaW5lZCwKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAg
ICAgZ2V0IGV2ZW50VHlwZSgpCkBAIC05NywxMyArMTIwLDEzIEBAIFdJLkxheW91dFRpbWVsaW5l
UmVjb3JkID0gY2xhc3MgTGF5b3V0VGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJl
Y29yZAogfTsKIAogV0kuTGF5b3V0VGltZWxpbmVSZWNvcmQuRXZlbnRUeXBlID0gewotICAgIElu
dmFsaWRhdGVTdHlsZXM6ICJsYXlvdXQtdGltZWxpbmUtcmVjb3JkLWludmFsaWRhdGUtc3R5bGVz
IiwKLSAgICBSZWNhbGN1bGF0ZVN0eWxlczogImxheW91dC10aW1lbGluZS1yZWNvcmQtcmVjYWxj
dWxhdGUtc3R5bGVzIiwKLSAgICBJbnZhbGlkYXRlTGF5b3V0OiAibGF5b3V0LXRpbWVsaW5lLXJl
Y29yZC1pbnZhbGlkYXRlLWxheW91dCIsCi0gICAgRm9yY2VkTGF5b3V0OiAibGF5b3V0LXRpbWVs
aW5lLXJlY29yZC1mb3JjZWQtbGF5b3V0IiwKLSAgICBMYXlvdXQ6ICJsYXlvdXQtdGltZWxpbmUt
cmVjb3JkLWxheW91dCIsCi0gICAgUGFpbnQ6ICJsYXlvdXQtdGltZWxpbmUtcmVjb3JkLXBhaW50
IiwKLSAgICBDb21wb3NpdGU6ICJsYXlvdXQtdGltZWxpbmUtcmVjb3JkLWNvbXBvc2l0ZSIKKyAg
ICBJbnZhbGlkYXRlU3R5bGVzOiAiaW52YWxpZGF0ZS1zdHlsZXMiLAorICAgIFJlY2FsY3VsYXRl
U3R5bGVzOiAicmVjYWxjdWxhdGUtc3R5bGVzIiwKKyAgICBJbnZhbGlkYXRlTGF5b3V0OiAiaW52
YWxpZGF0ZS1sYXlvdXQiLAorICAgIEZvcmNlZExheW91dDogImZvcmNlZC1sYXlvdXQiLAorICAg
IExheW91dDogImxheW91dCIsCisgICAgUGFpbnQ6ICJwYWludCIsCisgICAgQ29tcG9zaXRlOiAi
Y29tcG9zaXRlIgogfTsKIAogV0kuTGF5b3V0VGltZWxpbmVSZWNvcmQuVHlwZUlkZW50aWZpZXIg
PSAibGF5b3V0LXRpbWVsaW5lLXJlY29yZCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVkaWFUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZWRpYVRpbWVsaW5lUmVjb3Jk
LmpzCmluZGV4IDgxNDljMjQ3NWViLi4zNjFkZWRjZTQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlhVGltZWxpbmVSZWNvcmQuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlhVGlt
ZWxpbmVSZWNvcmQuanMKQEAgLTM3LDYgKzM3LDI3IEBAIFdJLk1lZGlhVGltZWxpbmVSZWNvcmQg
PSBjbGFzcyBNZWRpYVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKICAg
ICAgICAgdGhpcy5faXNMb3dQb3dlciA9IGlzTG93UG93ZXIgfHwgZmFsc2U7CiAgICAgfQogCisg
ICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpTT04oanNvbikKKyAgICB7
ICAgICAgICAKKyAgICAgICAgbGV0IHtldmVudFR5cGUsIHRpbWVzdGFtcH0gPSBqc29uOworICAg
ICAgICByZXR1cm4gbmV3IFdJLk1lZGlhVGltZWxpbmVSZWNvcmQoZXZlbnRUeXBlLCB0aW1lc3Rh
bXAsIGpzb24pOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICAvLyBGSVhN
RTogRE9NTm9kZQorCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLnR5
cGUsCisgICAgICAgICAgICBldmVudFR5cGU6IHRoaXMuX2V2ZW50VHlwZSwKKyAgICAgICAgICAg
IHRpbWVzdGFtcDogdGhpcy5zdGFydFRpbWUsCisgICAgICAgICAgICBkb21FdmVudDogdGhpcy5f
ZG9tRXZlbnQsCisgICAgICAgICAgICBpc0xvd1Bvd2VyOiB0aGlzLl9pc0xvd1Bvd2VyLAorICAg
ICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IGV2ZW50VHlwZSgpIHsg
cmV0dXJuIHRoaXMuX2V2ZW50VHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lbW9yeVByZXNzdXJlRXZlbnQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5UHJlc3N1cmVFdmVudC5q
cwppbmRleCAwY2ZlY2E3NTFlMS4uOTQwYzM2OTE0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlQcmVzc3VyZUV2ZW50LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1vcnlQcmVz
c3VyZUV2ZW50LmpzCkBAIC01Miw2ICs1MiwyMyBAQCBXSS5NZW1vcnlQcmVzc3VyZUV2ZW50ID0g
Y2xhc3MgTWVtb3J5UHJlc3N1cmVFdmVudAogICAgICAgICByZXR1cm4gbmV3IFdJLk1lbW9yeVBy
ZXNzdXJlRXZlbnQodGltZXN0YW1wLCBzZXZlcml0eSk7CiAgICAgfQogCisgICAgLy8gSW1wb3J0
IC8gRXhwb3J0CisKKworICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQorICAgIHsKKyAgICAgICAg
bGV0IHt0aW1lc3RhbXAsIHNldmVyaXR5fSA9IGpzb247CisgICAgICAgIHJldHVybiBuZXcgV0ku
TWVtb3J5UHJlc3N1cmVFdmVudCh0aW1lc3RhbXAsIHNldmVyaXR5KTsKKyAgICB9CisKKyAgICB0
b0pTT04oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRpbWVzdGFtcDog
dGhpcy5fdGltZXN0YW1wLAorICAgICAgICAgICAgc2V2ZXJpdHk6IHRoaXMuX3NldmVyaXR5LAor
ICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHRpbWVzdGFtcCgp
IHsgcmV0dXJuIHRoaXMuX3RpbWVzdGFtcDsgfQpAQCAtNTksNiArNzYsNiBAQCBXSS5NZW1vcnlQ
cmVzc3VyZUV2ZW50ID0gY2xhc3MgTWVtb3J5UHJlc3N1cmVFdmVudAogfTsKIAogV0kuTWVtb3J5
UHJlc3N1cmVFdmVudC5TZXZlcml0eSA9IHsKLSAgICBDcml0aWNhbDogU3ltYm9sKCJDcml0aWNh
bCIpLAotICAgIE5vbkNyaXRpY2FsOiBTeW1ib2woIk5vbkNyaXRpY2FsIiksCisgICAgQ3JpdGlj
YWw6ICJjcml0aWNhbCIsCisgICAgTm9uQ3JpdGljYWw6ICJub24tY3JpdGljYWwiLAogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZW1v
cnlUaW1lbGluZVJlY29yZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qcwppbmRleCA2Mzk1ODE3NWRjMy4uMWUzN2I5
YTQ4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9NZW1vcnlUaW1lbGluZVJlY29yZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvTWVtb3J5VGltZWxpbmVSZWNvcmQuanMKQEAgLTM0LDYgKzM0
LDcgQEAgV0kuTWVtb3J5VGltZWxpbmVSZWNvcmQgPSBjbGFzcyBNZW1vcnlUaW1lbGluZVJlY29y
ZCBleHRlbmRzIFdJLlRpbWVsaW5lUmVjb3JkCiAKICAgICAgICAgdGhpcy5fdGltZXN0YW1wID0g
dGltZXN0YW1wOwogICAgICAgICB0aGlzLl9jYXRlZ29yaWVzID0gV0kuTWVtb3J5VGltZWxpbmVS
ZWNvcmQubWVtb3J5Q2F0ZWdvcmllc0Zyb21Qcm90b2NvbChjYXRlZ29yaWVzKTsKKyAgICAgICAg
dGhpcy5fZXhwb3J0Q2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7CiAKICAgICAgICAgdGhpcy5fdG90
YWxTaXplID0gMDsKICAgICAgICAgZm9yIChsZXQge3NpemV9IG9mIGNhdGVnb3JpZXMpCkBAIC03
OSw2ICs4MCwyMyBAQCBXSS5NZW1vcnlUaW1lbGluZVJlY29yZCA9IGNsYXNzIE1lbW9yeVRpbWVs
aW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKICAgICAgICAgXTsKICAgICB9CiAK
KyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQorICAg
IHsKKyAgICAgICAgbGV0IHt0aW1lc3RhbXAsIGNhdGVnb3JpZXN9ID0ganNvbjsKKyAgICAgICAg
cmV0dXJuIG5ldyBXSS5NZW1vcnlUaW1lbGluZVJlY29yZCh0aW1lc3RhbXAsIGNhdGVnb3JpZXMp
OworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgdHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgdGltZXN0YW1wOiB0aGlzLnN0YXJ0
VGltZSwKKyAgICAgICAgICAgIGNhdGVnb3JpZXM6IHRoaXMuX2V4cG9ydENhdGVnb3JpZXMsCisg
ICAgICAgIH07CisgICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgdGltZXN0YW1wKCkg
eyByZXR1cm4gdGhpcy5fdGltZXN0YW1wOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZW5kZXJpbmdG
cmFtZVRpbWVsaW5lUmVjb3JkLmpzCmluZGV4IDEwZGNhNDI3YTYxLi41ZmQ4MTA4M2Y5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRl
cmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQuanMKQEAgLTY5
LDYgKzY5LDI3IEBAIFdJLlJlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBSZW5k
ZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuCiAgICAgICAgIH0KICAgICB9CiAK
KyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQorICAg
IHsKKyAgICAgICAgbGV0IHtzdGFydFRpbWUsIGVuZFRpbWV9ID0ganNvbjsKKyAgICAgICAgbGV0
IHJlY29yZCA9IG5ldyBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKHN0YXJ0VGltZSwg
ZW5kVGltZSk7CisgICAgICAgIHJlY29yZC5zZXR1cEZyYW1lSW5kZXgoKTsKKyAgICAgICAgcmV0
dXJuIHJlY29yZDsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgLy8gRklY
TUU6IGR1cmF0aW9uQnlUYXNrVHlwZSBkYXRhIGNhbm5vdCBiZSBjYWxjdWxhdGVkIGlmIHRoaXMg
ZG9lcyBub3QgaGF2ZSBjaGlsZHJlbi4KKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAg
dHlwZTogdGhpcy50eXBlLAorICAgICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLnN0YXJ0VGltZSwK
KyAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuZW5kVGltZSwKKyAgICAgICAgfTsKKyAgICB9CisK
ICAgICAvLyBQdWJsaWMKIAogICAgIGdldCBmcmFtZUluZGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcwppbmRleCAz
OGFlMWQ5ZjRjOC4uMjM3YzA1MzI0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2UuanMKQEAgLTY2LDYgKzY2LDcgQEAg
V0kuUmVzb3VyY2UgPSBjbGFzcyBSZXNvdXJjZSBleHRlbmRzIFdJLlNvdXJjZUNvZGUKICAgICAg
ICAgdGhpcy5fc3RhdHVzVGV4dCA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NhY2hlZCA9IGZhbHNl
OwogICAgICAgICB0aGlzLl9jYW5jZWxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9maW5pc2hl
ZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9mYWlsZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5f
ZmFpbHVyZVJlYXNvblRleHQgPSBudWxsOwogICAgICAgICB0aGlzLl9yZWNlaXZlZE5ldHdvcmtM
b2FkTWV0cmljcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlVGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VUaW1lbGluZVJlY29yZC5q
cwppbmRleCAxYjU0YTcwMmE1Ny4uMDk4NzIxZTM4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZVRpbWVsaW5lUmVjb3JkLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJj
ZVRpbWVsaW5lUmVjb3JkLmpzCkBAIC0zMyw2ICszMywyNiBAQCBXSS5SZXNvdXJjZVRpbWVsaW5l
UmVjb3JkID0gY2xhc3MgUmVzb3VyY2VUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJLlRpbWVsaW5l
UmVjbwogICAgICAgICB0aGlzLl9yZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKFdJLlJlc291cmNl
LkV2ZW50LlRpbWVzdGFtcHNEaWRDaGFuZ2UsIHRoaXMuX2Rpc3BhdGNoVXBkYXRlZEV2ZW50LCB0
aGlzKTsKICAgICB9CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBmcm9t
SlNPTihqc29uKQorICAgIHsKKyAgICAgICAgbGV0IHtlbnRyeSwgYXJjaGl2ZVN0YXJ0VGltZX0g
PSBqc29uOworICAgICAgICBsZXQgbG9jYWxSZXNvdXJjZSA9IFdJLkxvY2FsUmVzb3VyY2UuZnJv
bUhBUkVudHJ5KGVudHJ5LCBhcmNoaXZlU3RhcnRUaW1lKTsKKyAgICAgICAgcmV0dXJuIG5ldyBX
SS5SZXNvdXJjZVRpbWVsaW5lUmVjb3JkKGxvY2FsUmVzb3VyY2UpOworICAgIH0KKworICAgIHRv
SlNPTigpCisgICAgeworICAgICAgICBjb25zdCBjb250ZW50ID0gIiI7CisKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSwKKyAgICAgICAgICAgIGFyY2hpdmVT
dGFydFRpbWU6IHRoaXMuX3Jlc291cmNlLnJlcXVlc3RTZW50V2FsbHRpbWUgLSB0aGlzLnN0YXJ0
VGltZSwKKyAgICAgICAgICAgIGVudHJ5OiBXSS5IQVJCdWlsZGVyLmVudHJ5KHRoaXMuX3Jlc291
cmNlLCBjb250ZW50KSwKKyAgICAgICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAg
IGdldCByZXNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKaW5kZXgg
NWY1OWIwZDBiYTEuLjc3YmNhMDA0M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU2NyaXB0VGltZWxpbmVSZWNvcmQuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NjcmlwdFRpbWVsaW5lUmVj
b3JkLmpzCkBAIC00OCw2ICs0OCwzMiBAQCBXSS5TY3JpcHRUaW1lbGluZVJlY29yZCA9IGNsYXNz
IFNjcmlwdFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0kuVGltZWxpbmVSZWNvcmQKICAgICAgICAg
fQogICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09O
KGpzb24pCisgICAgeworICAgICAgICBsZXQge2V2ZW50VHlwZSwgc3RhcnRUaW1lLCBlbmRUaW1l
LCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIGRldGFpbHMsIHByb2ZpbGVQYXlsb2Fk
fSA9IGpzb247CisKKyAgICAgICAgaWYgKHR5cGVvZiBkZXRhaWxzID09PSAib2JqZWN0IiAmJiBk
ZXRhaWxzLl9fdHlwZSA9PT0gIkdhcmJhZ2VDb2xsZWN0aW9uIikKKyAgICAgICAgICAgIGRldGFp
bHMgPSBXSS5HYXJiYWdlQ29sbGVjdGlvbi5mcm9tSlNPTihkZXRhaWxzKTsKKworICAgICAgICBy
ZXR1cm4gbmV3IFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkKGV2ZW50VHlwZSwgc3RhcnRUaW1lLCBl
bmRUaW1lLCBjYWxsRnJhbWVzLCBzb3VyY2VDb2RlTG9jYXRpb24sIGRldGFpbHMsIHByb2ZpbGVQ
YXlsb2FkKTsKKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IENhbGxGcmFtZXMKKyAgICAgICAgLy8gRklYTUU6IFNvdXJjZUNvZGVMb2NhdGlvbgorCisgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsCisgICAgICAgICAgICBl
dmVudFR5cGU6IHRoaXMuX2V2ZW50VHlwZSwKKyAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5z
dGFydFRpbWUsCisgICAgICAgICAgICBlbmRUaW1lOiB0aGlzLmVuZFRpbWUsCisgICAgICAgICAg
ICBkZXRhaWxzOiB0aGlzLl9kZXRhaWxzLAorICAgICAgICB9OworICAgIH0KKwogICAgIC8vIFB1
YmxpYwogCiAgICAgZ2V0IGV2ZW50VHlwZSgpCkBAIC0xODMsMjAgKzIwOSwyMCBAQCBXSS5TY3Jp
cHRUaW1lbGluZVJlY29yZCA9IGNsYXNzIFNjcmlwdFRpbWVsaW5lUmVjb3JkIGV4dGVuZHMgV0ku
VGltZWxpbmVSZWNvcmQKIH07CiAKIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3JkLkV2ZW50VHlwZSA9
IHsKLSAgICBTY3JpcHRFdmFsdWF0ZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3JkLXNjcmlwdC1l
dmFsdWF0ZWQiLAotICAgIEFQSVNjcmlwdEV2YWx1YXRlZDogInNjcmlwdC10aW1lbGluZS1yZWNv
cmQtYXBpLXNjcmlwdC1ldmFsdWF0ZWQiLAotICAgIE1pY3JvdGFza0Rpc3BhdGNoZWQ6ICJzY3Jp
cHQtdGltZWxpbmUtcmVjb3JkLW1pY3JvdGFzay1kaXNwYXRjaGVkIiwKLSAgICBFdmVudERpc3Bh
dGNoZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3JkLWV2ZW50LWRpc3BhdGNoZWQiLAotICAgIFBy
b2JlU2FtcGxlUmVjb3JkZWQ6ICJzY3JpcHQtdGltZWxpbmUtcmVjb3JkLXByb2JlLXNhbXBsZS1y
ZWNvcmRlZCIsCi0gICAgVGltZXJGaXJlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtdGltZXIt
ZmlyZWQiLAotICAgIFRpbWVySW5zdGFsbGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC10aW1l
ci1pbnN0YWxsZWQiLAotICAgIFRpbWVyUmVtb3ZlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQt
dGltZXItcmVtb3ZlZCIsCi0gICAgQW5pbWF0aW9uRnJhbWVGaXJlZDogInNjcmlwdC10aW1lbGlu
ZS1yZWNvcmQtYW5pbWF0aW9uLWZyYW1lLWZpcmVkIiwKLSAgICBBbmltYXRpb25GcmFtZVJlcXVl
c3RlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtYW5pbWF0aW9uLWZyYW1lLXJlcXVlc3RlZCIs
Ci0gICAgQW5pbWF0aW9uRnJhbWVDYW5jZWxlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtYW5p
bWF0aW9uLWZyYW1lLWNhbmNlbGVkIiwKLSAgICBPYnNlcnZlckNhbGxiYWNrOiAic2NyaXB0LXRp
bWVsaW5lLXJlY29yZC1vYnNlcnZlci1jYWxsYmFjayIsCi0gICAgQ29uc29sZVByb2ZpbGVSZWNv
cmRlZDogInNjcmlwdC10aW1lbGluZS1yZWNvcmQtY29uc29sZS1wcm9maWxlLXJlY29yZGVkIiwK
LSAgICBHYXJiYWdlQ29sbGVjdGVkOiAic2NyaXB0LXRpbWVsaW5lLXJlY29yZC1nYXJiYWdlLWNv
bGxlY3RlZCIsCisgICAgU2NyaXB0RXZhbHVhdGVkOiAic2NyaXB0LWV2YWx1YXRlZCIsCisgICAg
QVBJU2NyaXB0RXZhbHVhdGVkOiAiYXBpLXNjcmlwdC1ldmFsdWF0ZWQiLAorICAgIE1pY3JvdGFz
a0Rpc3BhdGNoZWQ6ICJtaWNyb3Rhc2stZGlzcGF0Y2hlZCIsCisgICAgRXZlbnREaXNwYXRjaGVk
OiAiZXZlbnQtZGlzcGF0Y2hlZCIsCisgICAgUHJvYmVTYW1wbGVSZWNvcmRlZDogInByb2JlLXNh
bXBsZS1yZWNvcmRlZCIsCisgICAgVGltZXJGaXJlZDogInRpbWVyLWZpcmVkIiwKKyAgICBUaW1l
ckluc3RhbGxlZDogInRpbWVyLWluc3RhbGxlZCIsCisgICAgVGltZXJSZW1vdmVkOiAidGltZXIt
cmVtb3ZlZCIsCisgICAgQW5pbWF0aW9uRnJhbWVGaXJlZDogImFuaW1hdGlvbi1mcmFtZS1maXJl
ZCIsCisgICAgQW5pbWF0aW9uRnJhbWVSZXF1ZXN0ZWQ6ICJhbmltYXRpb24tZnJhbWUtcmVxdWVz
dGVkIiwKKyAgICBBbmltYXRpb25GcmFtZUNhbmNlbGVkOiAiYW5pbWF0aW9uLWZyYW1lLWNhbmNl
bGVkIiwKKyAgICBPYnNlcnZlckNhbGxiYWNrOiAib2JzZXJ2ZXItY2FsbGJhY2siLAorICAgIENv
bnNvbGVQcm9maWxlUmVjb3JkZWQ6ICJjb25zb2xlLXByb2ZpbGUtcmVjb3JkZWQiLAorICAgIEdh
cmJhZ2VDb2xsZWN0ZWQ6ICJnYXJiYWdlLWNvbGxlY3RlZCIsCiB9OwogCiBXSS5TY3JpcHRUaW1l
bGluZVJlY29yZC5FdmVudFR5cGUuZGlzcGxheU5hbWUgPSBmdW5jdGlvbihldmVudFR5cGUsIGRl
dGFpbHMsIGluY2x1ZGVEZXRhaWxzSW5NYWluVGl0bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwUmVzb3VyY2UuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwUmVzb3Vy
Y2UuanMKaW5kZXggMDlhODFkNWZhZDguLmNjMDhkZTU0NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlTWFwUmVzb3VyY2UuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJjZU1h
cFJlc291cmNlLmpzCkBAIC03NCw3ICs3NCw3IEBAIFdJLlNvdXJjZU1hcFJlc291cmNlID0gY2xh
c3MgU291cmNlTWFwUmVzb3VyY2UgZXh0ZW5kcyBXSS5SZXNvdXJjZQogICAgICAgICByZXR1cm4g
cmVzb3VyY2VVUkxDb21wb25lbnRzLnBhdGguc3Vic3RyaW5nKHNvdXJjZU1hcHBpbmdCYXNlUGF0
aFVSTENvbXBvbmVudHMucGF0aC5sZW5ndGgsIHJlc291cmNlVVJMQ29tcG9uZW50cy5sZW5ndGgp
OwogICAgIH0KIAotICAgIHJlcXVlc3RDb250ZW50RnJvbUJhY2tlbmQoY2FsbGJhY2spCisgICAg
cmVxdWVzdENvbnRlbnRGcm9tQmFja2VuZCgpCiAgICAgewogICAgICAgICAvLyBSZXZlcnQgdGhl
IG1hcmtBc0ZpbmlzaGVkIHRoYXQgd2FzIGRvbmUgaW4gdGhlIGNvbnN0cnVjdG9yLgogICAgICAg
ICB0aGlzLnJldmVydE1hcmtBc0ZpbmlzaGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIuanMKaW5k
ZXggZGUwNjlhNzUzMjMuLmRkNDdhMzY1YmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGltZWxpbmVNYXJrZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lTWFya2VyLmpzCkBA
IC0zNiw4ICszNiwyOCBAQCBXSS5UaW1lbGluZU1hcmtlciA9IGNsYXNzIFRpbWVsaW5lTWFya2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2RldGFpbHMgPSBkZXRhaWxzIHx8IG51
bGw7CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBzdGF0aWMgZnJvbUpT
T04oanNvbikKKyAgICB7CisgICAgICAgIGxldCB7dGltZSwgdHlwZSwgZGV0YWlsc30gPSBqc29u
OworICAgICAgICByZXR1cm4gbmV3IFdJLlRpbWVsaW5lTWFya2VyKHRpbWUsIHR5cGUsIGRldGFp
bHMpOworICAgIH0KKworICAgIHRvSlNPTigpCisgICAgeworICAgICAgICByZXR1cm4geworICAg
ICAgICAgICAgdGltZTogdGhpcy5fdGltZSwKKyAgICAgICAgICAgIHR5cGU6IHRoaXMuX3R5cGUs
CisgICAgICAgICAgICBkZXRhaWxzOiB0aGlzLl9kZXRhaWxzIHx8IHVuZGVmaW5lZCwKKyAgICAg
ICAgfTsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAorICAgIGdldCB0eXBlKCkgeyByZXR1cm4g
dGhpcy5fdHlwZTsgfQorICAgIGdldCBkZXRhaWxzKCkgeyByZXR1cm4gdGhpcy5fZGV0YWlsczsg
fQorCiAgICAgZ2V0IHRpbWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWU7CkBA
IC01NiwxNiArNzYsNiBAQCBXSS5UaW1lbGluZU1hcmtlciA9IGNsYXNzIFRpbWVsaW5lTWFya2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV0kuVGltZWxpbmVNYXJrZXIuRXZlbnQuVGltZUNoYW5nZWQpOwogICAgIH0KLQotICAgIGdl
dCB0eXBlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlOwotICAgIH0KLQotICAg
IGdldCBkZXRhaWxzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9kZXRhaWxzOwotICAg
IH0KIH07CiAKIFdJLlRpbWVsaW5lTWFya2VyLkV2ZW50ID0gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3Jk
LmpzCmluZGV4IDIwMTlhOGQ2MTUzLi5jMjFlM2ZjMGY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1lbGluZVJlY29y
ZC5qcwpAQCAtNDIsNiArNDIsMzggQEAgV0kuVGltZWxpbmVSZWNvcmQgPSBjbGFzcyBUaW1lbGlu
ZVJlY29yZCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IFtdOwog
ICAgIH0KIAorICAgIC8vIEltcG9ydCAvIEV4cG9ydAorCisgICAgc3RhdGljIGZyb21KU09OKGpz
b24pCisgICAgeworICAgICAgICBzd2l0Y2ggKGpzb24udHlwZSkgeworICAgICAgICBjYXNlIFdJ
LlRpbWVsaW5lUmVjb3JkLlR5cGUuTmV0d29yazoKKyAgICAgICAgICAgIHJldHVybiBXSS5SZXNv
dXJjZVRpbWVsaW5lUmVjb3JkLmZyb21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVs
aW5lUmVjb3JkLlR5cGUuTGF5b3V0OgorICAgICAgICAgICAgcmV0dXJuIFdJLkxheW91dFRpbWVs
aW5lUmVjb3JkLmZyb21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3Jk
LlR5cGUuU2NyaXB0OgorICAgICAgICAgICAgcmV0dXJuIFdJLlNjcmlwdFRpbWVsaW5lUmVjb3Jk
LmZyb21KU09OKGpzb24pOworICAgICAgICBjYXNlIFdJLlRpbWVsaW5lUmVjb3JkLlR5cGUuUmVu
ZGVyaW5nRnJhbWU6CisgICAgICAgICAgICByZXR1cm4gV0kuUmVuZGVyaW5nRnJhbWVUaW1lbGlu
ZVJlY29yZC5mcm9tSlNPTihqc29uKTsKKyAgICAgICAgY2FzZSBXSS5UaW1lbGluZVJlY29yZC5U
eXBlLkNQVToKKyAgICAgICAgICAgIHJldHVybiBXSS5DUFVUaW1lbGluZVJlY29yZC5mcm9tSlNP
Tihqc29uKTsKKyAgICAgICAgY2FzZSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLk1lbW9yeToKKyAg
ICAgICAgICAgIHJldHVybiBXSS5NZW1vcnlUaW1lbGluZVJlY29yZC5mcm9tSlNPTihqc29uKTsK
KyAgICAgICAgY2FzZSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxvY2F0aW9uczoKKyAg
ICAgICAgICAgIHJldHVybiBXSS5IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVJlY29yZC5mcm9tSlNP
Tihqc29uKTsKKyAgICAgICAgY2FzZSBXSS5UaW1lbGluZVJlY29yZC5UeXBlLk1lZGlhOgorICAg
ICAgICAgICAgcmV0dXJuIFdJLk1lZGlhVGltZWxpbmVSZWNvcmQuZnJvbUpTT04oanNvbik7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIFRpbWVs
aW5lUmVjb3JkLlR5cGU6ICIgKyBqc29uLnR5cGUsIGpzb24pOworICAgICAgICAgICAgcmV0dXJu
IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0b0pTT04oKQorICAgIHsKKyAgICAgICAg
dGhyb3cgV0kuTm90SW1wbGVtZW50ZWRFcnJvci5zdWJjbGFzc011c3RPdmVycmlkZSgpOworICAg
IH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5nLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVj
b3JkaW5nLmpzCmluZGV4IDlhZTc2Mzg0MzhiLi5kMzNhMTJkNGQ2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RpbWVsaW5lUmVjb3JkaW5n
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UaW1l
bGluZVJlY29yZGluZy5qcwpAQCAtMzQsNyArMzQsMTkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmcg
PSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlz
Ll9kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lOwogICAgICAgICB0aGlzLl9jYXB0dXJpbmcgPSBm
YWxzZTsKICAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5faW1w
b3J0ZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faW5zdHJ1bWVudHMgPSBpbnN0cnVtZW50cyB8
fCBbXTsKKworICAgICAgICB0aGlzLl9zdGFydFRpbWUgPSBOYU47CisgICAgICAgIHRoaXMuX2Vu
ZFRpbWUgPSBOYU47CisgICAgICAgIHRoaXMuX2Rpc2NvbnRpbnVpdGllcyA9IG51bGw7CisKKyAg
ICAgICAgdGhpcy5fZXhwb3J0RGF0YVJlY29yZHMgPSBudWxsOworICAgICAgICB0aGlzLl9leHBv
cnREYXRhTWFya2VycyA9IG51bGw7CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNZW1vcnlQcmVz
c3VyZUV2ZW50cyA9IG51bGw7CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFTYW1wbGVTdGFja1Ry
YWNlcyA9IG51bGw7CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFTYW1wbGVEdXJhdGlvbnMgPSBu
dWxsOworCiAgICAgICAgIHRoaXMuX3RvcERvd25DYWxsaW5nQ29udGV4dFRyZWUgPSBuZXcgV0ku
Q2FsbGluZ0NvbnRleHRUcmVlKFdJLkNhbGxpbmdDb250ZXh0VHJlZS5UeXBlLlRvcERvd24pOwog
ICAgICAgICB0aGlzLl9ib3R0b21VcENhbGxpbmdDb250ZXh0VHJlZSA9IG5ldyBXSS5DYWxsaW5n
Q29udGV4dFRyZWUoV0kuQ2FsbGluZ0NvbnRleHRUcmVlLlR5cGUuQm90dG9tVXApOwogICAgICAg
ICB0aGlzLl90b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0NvbnRleHRUcmVlID0gbmV3IFdJLkNh
bGxpbmdDb250ZXh0VHJlZShXSS5DYWxsaW5nQ29udGV4dFRyZWUuVHlwZS5Ub3BGdW5jdGlvbnNU
b3BEb3duKTsKQEAgLTYwLDEzICs3Miw4NSBAQCBXSS5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNz
IFRpbWVsaW5lUmVjb3JkaW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBXSS5z
aGFyZWRBcHAuZGVidWdnYWJsZVR5cGUgPT09IFdJLkRlYnVnZ2FibGVUeXBlLldlYjsKICAgICB9
CiAKKyAgICAvLyBJbXBvcnQgLyBFeHBvcnQKKworICAgIHN0YXRpYyBpbXBvcnQoaWRlbnRpZmll
ciwganNvbiwgZGlzcGxheU5hbWUpCisgICAgeworICAgICAgICBsZXQge3N0YXJ0VGltZSwgZW5k
VGltZSwgZGlzY29udGludWl0aWVzLCBpbnN0cnVtZW50VHlwZXMsIHJlY29yZHMsIG1hcmtlcnMs
IG1lbW9yeVByZXNzdXJlRXZlbnRzLCBzYW1wbGVTdGFja1RyYWNlcywgc2FtcGxlRHVyYXRpb25z
fSA9IGpzb247CisgICAgICAgIGxldCBpbXBvcnRlZERpc3BsYXlOYW1lID0gV0kuVUlTdHJpbmco
IkltcG9ydGVkIC0gJXMiKS5mb3JtYXQoZGlzcGxheU5hbWUpOworICAgICAgICBsZXQgaW5zdHJ1
bWVudHMgPSBpbnN0cnVtZW50VHlwZXMubWFwKCh0eXBlKSA9PiBXSS5JbnN0cnVtZW50LmNyZWF0
ZUZvclRpbWVsaW5lVHlwZSh0eXBlKSk7CisgICAgICAgIGxldCByZWNvcmRpbmcgPSBuZXcgV0ku
VGltZWxpbmVSZWNvcmRpbmcoaWRlbnRpZmllciwgaW1wb3J0ZWREaXNwbGF5TmFtZSwgaW5zdHJ1
bWVudHMpOworCisgICAgICAgIHJlY29yZGluZy5fcmVhZG9ubHkgPSB0cnVlOworICAgICAgICBy
ZWNvcmRpbmcuX2ltcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAgcmVjb3JkaW5nLl9zdGFydFRpbWUg
PSBzdGFydFRpbWU7CisgICAgICAgIHJlY29yZGluZy5fZW5kVGltZSA9IGVuZFRpbWU7CisgICAg
ICAgIHJlY29yZGluZy5fZGlzY29udGludWl0aWVzID0gZGlzY29udGludWl0aWVzOworCisgICAg
ICAgIHJlY29yZGluZy5pbml0aWFsaXplQ2FsbGluZ0NvbnRleHRUcmVlcyhzYW1wbGVTdGFja1Ry
YWNlcywgc2FtcGxlRHVyYXRpb25zKTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmRKU09OIG9m
IHJlY29yZHMpIHsKKyAgICAgICAgICAgIGxldCByZWNvcmQgPSBXSS5UaW1lbGluZVJlY29yZC5m
cm9tSlNPTihyZWNvcmRKU09OKTsKKyAgICAgICAgICAgIGlmIChyZWNvcmQpIHsKKyAgICAgICAg
ICAgICAgICByZWNvcmRpbmcuYWRkUmVjb3JkKHJlY29yZCk7CisKKyAgICAgICAgICAgICAgICBp
ZiAocmVjb3JkIGluc3RhbmNlb2YgV0kuU2NyaXB0VGltZWxpbmVSZWNvcmQpCisgICAgICAgICAg
ICAgICAgICAgIHJlY29yZC5wcm9maWxlUGF5bG9hZCA9IHJlY29yZGluZy5fdG9wRG93bkNhbGxp
bmdDb250ZXh0VHJlZS50b0NQVVByb2ZpbGVQYXlsb2FkKHJlY29yZC5zdGFydFRpbWUsIHJlY29y
ZC5lbmRUaW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0
IG1lbW9yeVByZXNzdXJlSlNPTiBvZiBtZW1vcnlQcmVzc3VyZUV2ZW50cykgeworICAgICAgICAg
ICAgbGV0IG1lbW9yeVByZXNzdXJlRXZlbnQgPSBXSS5NZW1vcnlQcmVzc3VyZUV2ZW50LmZyb21K
U09OKG1lbW9yeVByZXNzdXJlSlNPTik7CisgICAgICAgICAgICBpZiAobWVtb3J5UHJlc3N1cmVF
dmVudCkKKyAgICAgICAgICAgICAgICByZWNvcmRpbmcuYWRkTWVtb3J5UHJlc3N1cmVFdmVudCht
ZW1vcnlQcmVzc3VyZUV2ZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCBtYXJrZXJz
IG9uY2Ugd2UndmUgdHJhbnNpdGlvbmVkIHRoZSBhY3RpdmUgcmVjb3JkaW5nLgorICAgICAgICBz
ZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgIHJlY29yZGluZy5fX2ltcG9ydGluZyA9IHRy
dWU7CisKKyAgICAgICAgICAgIGZvciAobGV0IG1hcmtlckpTT04gb2YgbWFya2VycykgeworICAg
ICAgICAgICAgICAgIGxldCBtYXJrZXIgPSBXSS5UaW1lbGluZU1hcmtlci5mcm9tSlNPTihtYXJr
ZXJKU09OKTsKKyAgICAgICAgICAgICAgICBpZiAobWFya2VyKQorICAgICAgICAgICAgICAgICAg
ICByZWNvcmRpbmcuYWRkRXZlbnRNYXJrZXIobWFya2VyKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgcmVjb3JkaW5nLl9faW1wb3J0aW5nID0gZmFsc2U7CisgICAgICAgIH0pOworCisg
ICAgICAgIHJldHVybiByZWNvcmRpbmc7CisgICAgfQorCisgICAgZXhwb3J0RGF0YSgpCisgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmNhbkV4cG9ydCgpLCAiQXR0ZW1wdGVkIHRv
IGV4cG9ydCBhIHJlY29yZGluZyB3aGljaCBzaG91bGQgbm90IGJlIGV4cG9ydGFibGUuIik7CisK
KyAgICAgICAgLy8gRklYTUU6IE92ZXJ2aWV3IGRhdGEgKHNvdXJjZUNvZGVUaW1lbGluZXNNYXAp
LgorICAgICAgICAvLyBGSVhNRTogUmVjb3JkIGhpZXJhcmNoeSAocGFyZW50IC8gY2hpbGQgcmVs
YXRpb25zaGlwKSBpcyBsb3N0LgorCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBkaXNw
bGF5TmFtZTogdGhpcy5fZGlzcGxheU5hbWUsCisgICAgICAgICAgICBzdGFydFRpbWU6IHRoaXMu
X3N0YXJ0VGltZSwKKyAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuX2VuZFRpbWUsCisgICAgICAg
ICAgICBkaXNjb250aW51aXRpZXM6IHRoaXMuX2Rpc2NvbnRpbnVpdGllcywKKyAgICAgICAgICAg
IGluc3RydW1lbnRUeXBlczogdGhpcy5faW5zdHJ1bWVudHMubWFwKChpbnN0cnVtZW50KSA9PiBp
bnN0cnVtZW50LnRpbWVsaW5lUmVjb3JkVHlwZSksCisgICAgICAgICAgICByZWNvcmRzOiB0aGlz
Ll9leHBvcnREYXRhUmVjb3JkcywKKyAgICAgICAgICAgIG1hcmtlcnM6IHRoaXMuX2V4cG9ydERh
dGFNYXJrZXJzLAorICAgICAgICAgICAgbWVtb3J5UHJlc3N1cmVFdmVudHM6IHRoaXMuX2V4cG9y
dERhdGFNZW1vcnlQcmVzc3VyZUV2ZW50cywKKyAgICAgICAgICAgIHNhbXBsZVN0YWNrVHJhY2Vz
OiB0aGlzLl9leHBvcnREYXRhU2FtcGxlU3RhY2tUcmFjZXMsCisgICAgICAgICAgICBzYW1wbGVE
dXJhdGlvbnM6IHRoaXMuX2V4cG9ydERhdGFTYW1wbGVEdXJhdGlvbnMsCisgICAgICAgIH07Cisg
ICAgfQorCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgZGlzcGxheU5hbWUoKSB7IHJldHVybiB0
aGlzLl9kaXNwbGF5TmFtZTsgfQogICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5f
aWRlbnRpZmllcjsgfQogICAgIGdldCB0aW1lbGluZXMoKSB7IHJldHVybiB0aGlzLl90aW1lbGlu
ZXM7IH0KICAgICBnZXQgaW5zdHJ1bWVudHMoKSB7IHJldHVybiB0aGlzLl9pbnN0cnVtZW50czsg
fQorICAgIGdldCBjYXB0dXJpbmcoKSB7IHJldHVybiB0aGlzLl9jYXB0dXJpbmc7IH0KICAgICBn
ZXQgcmVhZG9ubHkoKSB7IHJldHVybiB0aGlzLl9yZWFkb25seTsgfQorICAgIGdldCBpbXBvcnRl
ZCgpIHsgcmV0dXJuIHRoaXMuX2ltcG9ydGVkOyB9CiAgICAgZ2V0IHN0YXJ0VGltZSgpIHsgcmV0
dXJuIHRoaXMuX3N0YXJ0VGltZTsgfQogICAgIGdldCBlbmRUaW1lKCkgeyByZXR1cm4gdGhpcy5f
ZW5kVGltZTsgfQogCkBAIC0xMTMsOSArMTk3LDkgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmcgPSBj
bGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICB1bmxvYWRlZCgpCisgICAgdW5sb2FkZWQoaW1wb3J0aW5nKQog
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuaXNFbXB0eSgpLCAiU2hvdWxkbid0
IHVubG9hZCBhbiBlbXB0eSByZWNvcmRpbmc7IGl0IHNob3VsZCBiZSByZXVzZWQgaW5zdGVhZC4i
KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaW1wb3J0aW5nIHx8ICF0aGlzLmlzRW1wdHkoKSwg
IlNob3VsZG4ndCB1bmxvYWQgYW4gZW1wdHkgcmVjb3JkaW5nOyBpdCBzaG91bGQgYmUgcmV1c2Vk
IGluc3RlYWQuIik7CiAKICAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSB0cnVlOwogCkBAIC0xMjcs
MTAgKzIxMSwxNyBAQCBXSS5UaW1lbGluZVJlY29yZGluZyA9IGNsYXNzIFRpbWVsaW5lUmVjb3Jk
aW5nIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9yZWFk
b25seSwgIkNhbid0IHJlc2V0IGEgcmVhZC1vbmx5IHJlY29yZGluZy4iKTsKIAogICAgICAgICB0
aGlzLl9zb3VyY2VDb2RlVGltZWxpbmVzTWFwID0gbmV3IE1hcDsKKwogICAgICAgICB0aGlzLl9z
dGFydFRpbWUgPSBOYU47CiAgICAgICAgIHRoaXMuX2VuZFRpbWUgPSBOYU47CiAgICAgICAgIHRo
aXMuX2Rpc2NvbnRpbnVpdGllcyA9IFtdOwogCisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFSZWNv
cmRzID0gW107CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNYXJrZXJzID0gW10KKyAgICAgICAg
dGhpcy5fZXhwb3J0RGF0YU1lbW9yeVByZXNzdXJlRXZlbnRzID0gW107CisgICAgICAgIHRoaXMu
X2V4cG9ydERhdGFTYW1wbGVTdGFja1RyYWNlcyA9IFtdOworICAgICAgICB0aGlzLl9leHBvcnRE
YXRhU2FtcGxlRHVyYXRpb25zID0gW107CisKICAgICAgICAgdGhpcy5fdG9wRG93bkNhbGxpbmdD
b250ZXh0VHJlZS5yZXNldCgpOwogICAgICAgICB0aGlzLl9ib3R0b21VcENhbGxpbmdDb250ZXh0
VHJlZS5yZXNldCgpOwogICAgICAgICB0aGlzLl90b3BGdW5jdGlvbnNUb3BEb3duQ2FsbGluZ0Nv
bnRleHRUcmVlLnJlc2V0KCk7CkBAIC0xOTIsNyArMjgzLDkgQEAgV0kuVGltZWxpbmVSZWNvcmRp
bmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgYWRk
RXZlbnRNYXJrZXIobWFya2VyKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9jYXB0dXJpbmcp
CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNYXJrZXJzLnB1c2gobWFya2VyKTsKKworICAgICAg
ICBpZiAoIXRoaXMuX2NhcHR1cmluZyAmJiAhdGhpcy5fX2ltcG9ydGluZykKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5UaW1l
bGluZVJlY29yZGluZy5FdmVudC5NYXJrZXJBZGRlZCwge21hcmtlcn0pOwpAQCAtMjAwLDcgKzI5
Myw5IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0
ZW5kcyBXSS5PYmplY3QKIAogICAgIGFkZFJlY29yZChyZWNvcmQpCiAgICAgewotICAgICAgICB2
YXIgdGltZWxpbmUgPSB0aGlzLl90aW1lbGluZXMuZ2V0KHJlY29yZC50eXBlKTsKKyAgICAgICAg
dGhpcy5fZXhwb3J0RGF0YVJlY29yZHMucHVzaChyZWNvcmQpOworCisgICAgICAgIGxldCB0aW1l
bGluZSA9IHRoaXMuX3RpbWVsaW5lcy5nZXQocmVjb3JkLnR5cGUpOwogICAgICAgICBjb25zb2xl
LmFzc2VydCh0aW1lbGluZSwgcmVjb3JkLCB0aGlzLl90aW1lbGluZXMpOwogICAgICAgICBpZiAo
IXRpbWVsaW5lKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQ3LDYgKzM0Miw4IEBAIFdJLlRp
bWVsaW5lUmVjb3JkaW5nID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmcgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIGFkZE1lbW9yeVByZXNzdXJlRXZlbnQobWVtb3J5UHJlc3N1cmVFdmVudCkKICAg
ICB7CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFNZW1vcnlQcmVzc3VyZUV2ZW50cy5wdXNoKG1l
bW9yeVByZXNzdXJlRXZlbnQpOworCiAgICAgICAgIGxldCBtZW1vcnlUaW1lbGluZSA9IHRoaXMu
X3RpbWVsaW5lcy5nZXQoV0kuVGltZWxpbmVSZWNvcmQuVHlwZS5NZW1vcnkpOwogICAgICAgICBj
b25zb2xlLmFzc2VydChtZW1vcnlUaW1lbGluZSwgdGhpcy5fdGltZWxpbmVzKTsKICAgICAgICAg
aWYgKCFtZW1vcnlUaW1lbGluZSkKQEAgLTMyNiw2ICs0MjMsMzAgQEAgV0kuVGltZWxpbmVSZWNv
cmRpbmcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZyBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICB9CiAgICAgfQogCisgICAgaW5pdGlhbGl6ZUNhbGxpbmdDb250ZXh0VHJlZXMoc3RhY2tUcmFj
ZXMsIHNhbXBsZUR1cmF0aW9ucykKKyAgICB7CisgICAgICAgIHRoaXMuX2V4cG9ydERhdGFTYW1w
bGVTdGFja1RyYWNlcy5jb25jYXQoc3RhY2tUcmFjZXMpOworICAgICAgICB0aGlzLl9leHBvcnRE
YXRhU2FtcGxlRHVyYXRpb25zLmNvbmNhdChzYW1wbGVEdXJhdGlvbnMpOworCisgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgc3RhY2tUcmFjZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAg
IHRoaXMuX3RvcERvd25DYWxsaW5nQ29udGV4dFRyZWUudXBkYXRlVHJlZVdpdGhTdGFja1RyYWNl
KHN0YWNrVHJhY2VzW2ldLCBzYW1wbGVEdXJhdGlvbnNbaV0pOworICAgICAgICAgICAgdGhpcy5f
Ym90dG9tVXBDYWxsaW5nQ29udGV4dFRyZWUudXBkYXRlVHJlZVdpdGhTdGFja1RyYWNlKHN0YWNr
VHJhY2VzW2ldLCBzYW1wbGVEdXJhdGlvbnNbaV0pOworICAgICAgICAgICAgdGhpcy5fdG9wRnVu
Y3Rpb25zVG9wRG93bkNhbGxpbmdDb250ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNrVHJhY2Uo
c3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7CisgICAgICAgICAgICB0aGlzLl90
b3BGdW5jdGlvbnNCb3R0b21VcENhbGxpbmdDb250ZXh0VHJlZS51cGRhdGVUcmVlV2l0aFN0YWNr
VHJhY2Uoc3RhY2tUcmFjZXNbaV0sIHNhbXBsZUR1cmF0aW9uc1tpXSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBjYW5FeHBvcnQoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2NhcHR1cmlu
ZykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoaXNOYU4odGhpcy5f
c3RhcnRUaW1lKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKICAgICAvLyBQcml2YXRlCiAKICAgICBfa2V5Rm9yUmVjb3JkKHJlY29y
ZCkKQEAgLTM3MywzICs0OTQsNSBAQCBXSS5UaW1lbGluZVJlY29yZGluZy5FdmVudCA9IHsKIFdJ
LlRpbWVsaW5lUmVjb3JkaW5nLmlzTGVnYWN5ID0gdW5kZWZpbmVkOwogV0kuVGltZWxpbmVSZWNv
cmRpbmcuVGltZXN0YW1wVGhyZXNob2xkRm9yTGVnYWN5UmVjb3JkQ29udmVyc2lvbiA9IDEwMDAw
MDAwOyAvLyBTb21lIHZhbHVlIG5vdCBuZWFyIHplcm8uCiBXSS5UaW1lbGluZVJlY29yZGluZy5U
aW1lc3RhbXBUaHJlc2hvbGRGb3JMZWdhY3lBc3N1bWVkTWlsbGlzZWNvbmRzID0gMTQyMDA5OTIw
MDAwMDsgLy8gRGF0ZS5wYXJzZSgiSmFuIDEsIDIwMTUiKS4gTWlsbGlzZWNvbmRzIHNpbmNlIGVw
b2NoLgorCitXSS5UaW1lbGluZVJlY29yZGluZy5TZXJpYWxpemF0aW9uVmVyc2lvbiA9IDE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DUFVU
aW1lbGluZU92ZXJ2aWV3R3JhcGguanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKaW5kZXggYTUyYWY1ZGY0NzAu
LmVmMTMzN2ZkZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DUFVUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1BVVGltZWxpbmVPdmVydmlld0dyYXBoLmpz
CkBAIC01MSw2ICs1MSw5IEBAIFdJLkNQVVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIENQ
VVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLlRpbWVsaW5lCiAgICAgICAgIHRoaXMu
X2xhc3RTZWxlY3RlZFJlY29yZEluTGF5b3V0ID0gbnVsbDsKIAogICAgICAgICB0aGlzLnJlc2V0
KCk7CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkIG9mIHRoaXMuX2NwdVRpbWVsaW5lLnJlY29y
ZHMpCisgICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAg
ICAgLy8gU3RhdGljCkBAIC0yMTIsOCArMjE1LDEzIEBAIFdJLkNQVVRpbWVsaW5lT3ZlcnZpZXdH
cmFwaCA9IGNsYXNzIENQVVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLlRpbWVsaW5l
CiAgICAgewogICAgICAgICBsZXQgY3B1VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29y
ZDsKIAorICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKGNwdVRpbWVsaW5lUmVjb3JkKTsKKwor
ICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgX3Byb2Nlc3NSZWNvcmQo
Y3B1VGltZWxpbmVSZWNvcmQpCisgICAgewogICAgICAgICB0aGlzLl9tYXhVc2FnZSA9IE1hdGgu
bWF4KHRoaXMuX21heFVzYWdlLCBjcHVUaW1lbGluZVJlY29yZC51c2FnZSk7Ci0KLSAgICAgICAg
dGhpcy5uZWVkc0xheW91dCgpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZVZpZXcu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxsb2Nh
dGlvbnNUaW1lbGluZVZpZXcuanMKaW5kZXggMGU5MjA3ODRiMWUuLjRjOTYyNDUwZmYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVWaWV3LmpzCkBAIC0yMTksMjIg
KzIxOSw2IEBAIFdJLkhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lVmlldyA9IGNsYXNzIEhlYXBBbGxv
Y2F0aW9uc1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpCiAgICAgICAgIHJldHVybiBjb21wb25l
bnRzLmNvbmNhdCh0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5jdXJyZW50Q29udGVudFZpZXcu
c2VsZWN0aW9uUGF0aENvbXBvbmVudHMpOwogICAgIH0KIAotICAgIGdldCBzdXBwb3J0c1NhdmUo
KQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Nob3dpbmdTbmFwc2hvdExpc3QpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50Vmlld0NvbnRh
aW5lci5jdXJyZW50Q29udGVudFZpZXcpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmll
dy5zdXBwb3J0c1NhdmU7Ci0gICAgfQotCi0gICAgZ2V0IHNhdmVEYXRhKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5jdXJyZW50Q29udGVudFZpZXcu
c2F2ZURhdGE7Ci0gICAgfQotCiAgICAgc2VsZWN0UmVjb3JkKHJlY29yZCkKICAgICB7CiAgICAg
ICAgIGlmIChyZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9IZWFwU25hcHNob3RDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBTbmFwc2hvdENvbnRlbnRWaWV3LmpzCmlu
ZGV4IDVmMDc5NzFjMzQ5Li5kZGEzYWM4Yjg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90Q29udGVudFZpZXcuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcFNuYXBzaG90
Q29udGVudFZpZXcuanMKQEAgLTY1LDE2ICs2NSw2IEBAIFdJLkhlYXBTbmFwc2hvdENvbnRlbnRW
aWV3ID0gY2xhc3MgSGVhcFNuYXBzaG90Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmll
CiAgICAgICAgIHJldHVybiBbXTsKICAgICB9CiAKLSAgICBnZXQgc3VwcG9ydHNTYXZlKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0ku
SGVhcFNuYXBzaG90UHJveHk7Ci0gICAgfQotCi0gICAgZ2V0IHNhdmVEYXRhKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB7Y3VzdG9tU2F2ZUhhbmRsZXI6ICgpID0+IHsgdGhpcy5fZXhwb3J0U25h
cHNob3QoKTsgfX07Ci0gICAgfQotCiAgICAgc2hvd24oKQogICAgIHsKICAgICAgICAgc3VwZXIu
c2hvd24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGguY3Nz
CmluZGV4IDg5MzU0ODcxNmEwLi44ZGU0ZDJiYzgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBo
LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlv
dXRUaW1lbGluZU92ZXJ2aWV3R3JhcGguY3NzCkBAIC0yMywxNSArMjMsMTUgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0udGltZWxpbmUtb3ZlcnZpZXctZ3Jh
cGgubGF5b3V0ID4gLmdyYXBoLXJvdyB7CisudGltZWxpbmUtb3ZlcnZpZXctZ3JhcGgubGF5b3V0
LW92ZXJ2aWV3ID4gLmdyYXBoLXJvdyB7CiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0udGltZWxp
bmUtb3ZlcnZpZXctZ3JhcGgubGF5b3V0ID4gLmdyYXBoLXJvdyA+IC50aW1lbGluZS1yZWNvcmQt
YmFyIHsKKy50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQtb3ZlcnZpZXcgPiAuZ3JhcGgt
cm93ID4gLnRpbWVsaW5lLXJlY29yZC1iYXIgewogICAgIGhlaWdodDogMTJweDsKICAgICBtYXJn
aW4tdG9wOiA0cHg7CiB9CiAKLS50aW1lbGluZS1vdmVydmlldy1ncmFwaC5sYXlvdXQgPiAuZ3Jh
cGgtcm93ID4gLnRpbWVsaW5lLXJlY29yZC1iYXIgPiAuc2VnbWVudCB7CisudGltZWxpbmUtb3Zl
cnZpZXctZ3JhcGgubGF5b3V0LW92ZXJ2aWV3ID4gLmdyYXBoLXJvdyA+IC50aW1lbGluZS1yZWNv
cmQtYmFyID4gLnNlZ21lbnQgewogICAgIGJvcmRlci1yYWRpdXM6IDJweDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVs
aW5lT3ZlcnZpZXdHcmFwaC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwppbmRleCBlOTgwMzBhMzYxMy4u
NjQyZDAwYmU4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3Jh
cGguanMKQEAgLTI5LDEyICsyOSwxNSBAQCBXSS5MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGgg
PSBjbGFzcyBMYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS5UaQogICAgIHsK
ICAgICAgICAgc3VwZXIodGltZWxpbmVPdmVydmlldyk7CiAKLSAgICAgICAgdGhpcy5lbGVtZW50
LmNsYXNzTGlzdC5hZGQoImxheW91dCIpOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgibGF5b3V0LW92ZXJ2aWV3Iik7CiAKICAgICAgICAgdGhpcy5fbGF5b3V0VGltZWxpbmUg
PSB0aW1lbGluZTsKICAgICAgICAgdGhpcy5fbGF5b3V0VGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5l
cihXSS5UaW1lbGluZS5FdmVudC5SZWNvcmRBZGRlZCwgdGhpcy5fbGF5b3V0VGltZWxpbmVSZWNv
cmRBZGRlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5yZXNldCgpOworCisgICAgICAgIGZvciAo
bGV0IHJlY29yZCBvZiB0aGlzLl9sYXlvdXRUaW1lbGluZS5yZWNvcmRzKQorICAgICAgICAgICAg
dGhpcy5fcHJvY2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAt
MTE4LDE0ICsxMjEsMTkgQEAgV0kuTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3Mg
TGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuVGkKIAogICAgIF9sYXlvdXRU
aW1lbGluZVJlY29yZEFkZGVkKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGxheW91dFRpbWVs
aW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CisgICAgICAgIGxldCBsYXlvdXRUaW1lbGlu
ZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOwogICAgICAgICBjb25zb2xlLmFzc2VydChsYXlv
dXRUaW1lbGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLkxheW91dFRpbWVsaW5lUmVjb3JkKTsKIAor
ICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKGxheW91dFRpbWVsaW5lUmVjb3JkKTsKKworICAg
ICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQorCisgICAgX3Byb2Nlc3NSZWNvcmQobGF5
b3V0VGltZWxpbmVSZWNvcmQpCisgICAgewogICAgICAgICBpZiAobGF5b3V0VGltZWxpbmVSZWNv
cmQuZXZlbnRUeXBlID09PSBXSS5MYXlvdXRUaW1lbGluZVJlY29yZC5FdmVudFR5cGUuUGFpbnQg
fHwgbGF5b3V0VGltZWxpbmVSZWNvcmQuZXZlbnRUeXBlID09PSBXSS5MYXlvdXRUaW1lbGluZVJl
Y29yZC5FdmVudFR5cGUuQ29tcG9zaXRlKQogICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVQYWlu
dFJlY29yZFJvdy5yZWNvcmRzLnB1c2gobGF5b3V0VGltZWxpbmVSZWNvcmQpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICB0aGlzLl90aW1lbGluZUxheW91dFJlY29yZFJvdy5yZWNvcmRzLnB1
c2gobGF5b3V0VGltZWxpbmVSZWNvcmQpOwotCi0gICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsK
ICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzCmluZGV4IGMxMTcyNDBjYzkx
Li44ZjM3NjEzNTQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lVmlldy5qcwpAQCAtOTgsNiAr
OTgsOSBAQCBXSS5MYXlvdXRUaW1lbGluZVZpZXcgPSBjbGFzcyBMYXlvdXRUaW1lbGluZVZpZXcg
ZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcKICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5l
cihXSS5UaW1lbGluZS5FdmVudC5SZWNvcmRBZGRlZCwgdGhpcy5fbGF5b3V0VGltZWxpbmVSZWNv
cmRBZGRlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fcGVuZGluZ1JlY29yZHMgPSBbXTsKKwor
ICAgICAgICBmb3IgKGxldCByZWNvcmQgb2YgdGltZWxpbmUucmVjb3JkcykKKyAgICAgICAgICAg
IHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVjb3JkKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAg
LTIzMSwxNiArMjM0LDIxIEBAIFdJLkxheW91dFRpbWVsaW5lVmlldyA9IGNsYXNzIExheW91dFRp
bWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogCiAgICAgX2xheW91dFRpbWVsaW5l
UmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgbGF5b3V0VGltZWxpbmVSZWNv
cmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgbGV0IGxheW91dFRpbWVsaW5lUmVjb3Jk
ID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxheW91dFRpbWVs
aW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuTGF5b3V0VGltZWxpbmVSZWNvcmQpOwogCisgICAgICAg
IHRoaXMuX3Byb2Nlc3NSZWNvcmQobGF5b3V0VGltZWxpbmVSZWNvcmQpOworCisgICAgICAgIHRo
aXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAgICBfcHJvY2Vzc1JlY29yZChsYXlvdXRUaW1l
bGluZVJlY29yZCkKKyAgICB7CiAgICAgICAgIC8vIE9ubHkgYWRkIHRvcC1sZXZlbCByZWNvcmRz
LCB0byBhdm9pZCBwcm9jZXNzaW5nIGNoaWxkIHJlY29yZHMgbXVsdGlwbGUgdGltZXMuCiAgICAg
ICAgIGlmIChsYXlvdXRUaW1lbGluZVJlY29yZC5wYXJlbnQgaW5zdGFuY2VvZiBXSS5MYXlvdXRU
aW1lbGluZVJlY29yZCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl9wZW5k
aW5nUmVjb3Jkcy5wdXNoKGxheW91dFRpbWVsaW5lUmVjb3JkKTsKLQotICAgICAgICB0aGlzLm5l
ZWRzTGF5b3V0KCk7CiAgICAgfQogCiAgICAgX3VwZGF0ZUhpZ2hsaWdodCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZWRpYVRpbWVsaW5l
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lZGlh
VGltZWxpbmVWaWV3LmpzCmluZGV4IDNiNDAyZGNkNWY4Li5jMTY0OGIyM2YzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWVkaWFUaW1lbGlu
ZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TWVkaWFUaW1lbGluZVZpZXcuanMKQEAgLTc5LDYgKzc5LDkgQEAgV0kuTWVkaWFUaW1lbGluZVZp
ZXcgPSBjbGFzcyBNZWRpYVRpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogICAg
ICAgICB0aW1lbGluZS5hZGRFdmVudExpc3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlY29yZEFk
ZGVkLCB0aGlzLl9oYW5kbGVSZWNvcmRBZGRlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fcGVu
ZGluZ1JlY29yZHMgPSBbXTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmQgb2YgdGltZWxpbmUu
cmVjb3JkcykKKyAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVjb3JkKTsKICAgICB9
CiAKICAgICAvLyBQdWJsaWMKQEAgLTE5MSwxNCArMTk0LDE5IEBAIFdJLk1lZGlhVGltZWxpbmVW
aWV3ID0gY2xhc3MgTWVkaWFUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcKIAog
ICAgIF9oYW5kbGVSZWNvcmRBZGRlZChldmVudCkKICAgICB7Ci0gICAgICAgIGxldCByZWNvcmQg
PSBldmVudC5kYXRhLnJlY29yZDsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocmVjb3JkIGluc3Rh
bmNlb2YgV0kuTWVkaWFUaW1lbGluZVJlY29yZCk7CisgICAgICAgIGxldCBtZWRpYVRpbWVsaW5l
UmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG1lZGlh
VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5NZWRpYVRpbWVsaW5lUmVjb3JkKTsKIAotICAg
ICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNoKHJlY29yZCk7CisgICAgICAgIHRoaXMuX3By
b2Nlc3NSZWNvcmQobWVkaWFUaW1lbGluZVJlY29yZCk7CiAKICAgICAgICAgdGhpcy5uZWVkc0xh
eW91dCgpOwogICAgIH0KIAorICAgIF9wcm9jZXNzUmVjb3JkKG1lZGlhVGltZWxpbmVSZWNvcmQp
CisgICAgeworICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNoKG1lZGlhVGltZWxpbmVS
ZWNvcmQpOworICAgIH0KKwogICAgIF9oYW5kbGVTZWxlY3Rpb25QYXRoQ29tcG9uZW50U2libGlu
Z1NlbGVjdGVkKGV2ZW50KQogICAgIHsKICAgICAgICAgbGV0IHBhdGhDb21wb25lbnQgPSBldmVu
dC5kYXRhLnBhdGhDb21wb25lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZU92ZXJ2
aWV3R3JhcGguanMKaW5kZXggYzE4NGNkZjY0YWQuLjQ5NjA5MmZmZjcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZW1vcnlUaW1lbGluZU92
ZXJ2aWV3R3JhcGguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCkBAIC01Miw2ICs1Miw5IEBAIFdJ
Lk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE1lbW9yeVRpbWVsaW5lT3ZlcnZp
ZXdHcmFwaCBleHRlbmRzIFdJLlRpCiAgICAgICAgIHRoaXMuX21lbW9yeVByZXNzdXJlTWFya2Vy
RWxlbWVudHMgPSBbXTsKIAogICAgICAgICB0aGlzLnJlc2V0KCk7CisKKyAgICAgICAgZm9yIChs
ZXQgcmVjb3JkIG9mIHRoaXMuX21lbW9yeVRpbWVsaW5lLnJlY29yZHMpCisgICAgICAgICAgICB0
aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCkBA
IC0yNDQsNyArMjQ3LDE1IEBAIFdJLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNz
IE1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLlRpCiAgICAgX21lbW9yeVRp
bWVsaW5lUmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgbWVtb3J5VGltZWxp
bmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobWVt
b3J5VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5NZW1vcnlUaW1lbGluZVJlY29yZCk7CiAK
KyAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChtZW1vcnlUaW1lbGluZVJlY29yZCk7CisKKyAg
ICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF9wcm9jZXNzUmVjb3JkKG1l
bW9yeVRpbWVsaW5lUmVjb3JkKQorICAgIHsKICAgICAgICAgdGhpcy5fbWF4U2l6ZSA9IE1hdGgu
bWF4KHRoaXMuX21heFNpemUsIG1lbW9yeVRpbWVsaW5lUmVjb3JkLnRvdGFsU2l6ZSk7CiAKICAg
ICAgICAgaWYgKCF0aGlzLl9kaWRJbml0aWFsaXplQ2F0ZWdvcmllcykgewpAQCAtMjU0LDggKzI2
NSw2IEBAIFdJLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE1lbW9yeVRpbWVs
aW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLlRpCiAgICAgICAgICAgICAgICAgdHlwZXMucHVz
aChjYXRlZ29yeS50eXBlKTsKICAgICAgICAgICAgIHRoaXMuX2NoYXJ0LmluaXRpYWxpemVTZWN0
aW9ucyh0eXBlcyk7CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAg
ICAgfQogCiAgICAgX21lbW9yeVRpbWVsaW5lTWVtb3J5UHJlc3N1cmVFdmVudEFkZGVkKGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TWVtb3J5VGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTWVtb3J5VGltZWxpbmVWaWV3LmpzCmluZGV4IDQ0MmI3ZGE3ZDI1Li41MTcyNzcw
ZjU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTWVtb3J5VGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lVmlldy5qcwpAQCAtOTYsNiArOTYsOSBAQCBX
SS5NZW1vcnlUaW1lbGluZVZpZXcgPSBjbGFzcyBNZW1vcnlUaW1lbGluZVZpZXcgZXh0ZW5kcyBX
SS5UaW1lbGluZVZpZXcKICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UaW1l
bGluZS5FdmVudC5SZWNvcmRBZGRlZCwgdGhpcy5fbWVtb3J5VGltZWxpbmVSZWNvcmRBZGRlZCwg
dGhpcyk7CiAKICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92
ZSIsIHRoaXMuX2hhbmRsZUdyYXBoTW91c2VNb3ZlLmJpbmQodGhpcykpOworCisgICAgICAgIGZv
ciAobGV0IHJlY29yZCBvZiB0aW1lbGluZS5yZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJv
Y2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0KIAogICAgIC8vIFN0YXRpYwpAQCAtNDUyLDEyICs0
NTUsMTcgQEAgV0kuTWVtb3J5VGltZWxpbmVWaWV3ID0gY2xhc3MgTWVtb3J5VGltZWxpbmVWaWV3
IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAgICAgICAgIGxldCBtZW1vcnlUaW1lbGluZVJlY29y
ZCA9IGV2ZW50LmRhdGEucmVjb3JkOwogICAgICAgICBjb25zb2xlLmFzc2VydChtZW1vcnlUaW1l
bGluZVJlY29yZCBpbnN0YW5jZW9mIFdJLk1lbW9yeVRpbWVsaW5lUmVjb3JkKTsKIAotICAgICAg
ICBpZiAoIXRoaXMuX2RpZEluaXRpYWxpemVDYXRlZ29yaWVzKQotICAgICAgICAgICAgdGhpcy5f
aW5pdGlhbGl6ZUNhdGVnb3J5Vmlld3MobWVtb3J5VGltZWxpbmVSZWNvcmQpOwotCi0gICAgICAg
IHRoaXMuX21heFNpemUgPSBNYXRoLm1heCh0aGlzLl9tYXhTaXplLCBtZW1vcnlUaW1lbGluZVJl
Y29yZC50b3RhbFNpemUpOworICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKG1lbW9yeVRpbWVs
aW5lUmVjb3JkKTsKIAogICAgICAgICBpZiAobWVtb3J5VGltZWxpbmVSZWNvcmQuc3RhcnRUaW1l
ID49IHRoaXMuc3RhcnRUaW1lICYmIG1lbW9yeVRpbWVsaW5lUmVjb3JkLmVuZFRpbWUgPD0gdGhp
cy5lbmRUaW1lKQogICAgICAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOwogICAgIH0KKworICAg
IF9wcm9jZXNzUmVjb3JkKG1lbW9yeVRpbWVsaW5lUmVjb3JkKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9kaWRJbml0aWFsaXplQ2F0ZWdvcmllcykKKyAgICAgICAgICAgIHRoaXMuX2luaXRp
YWxpemVDYXRlZ29yeVZpZXdzKG1lbW9yeVRpbWVsaW5lUmVjb3JkKTsKKworICAgICAgICB0aGlz
Ll9tYXhTaXplID0gTWF0aC5tYXgodGhpcy5fbWF4U2l6ZSwgbWVtb3J5VGltZWxpbmVSZWNvcmQu
dG90YWxTaXplKTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZU92
ZXJ2aWV3R3JhcGguanMKaW5kZXggNzRkOTRhYjBmMzMuLjMyODNmOTMyZTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxp
bmVPdmVydmlld0dyYXBoLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKQEAgLTM2LDYgKzM2LDkg
QEAgV0kuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE5ldHdvcmtUaW1lbGlu
ZU92ZXJ2aWV3R3JhcGggZXh0ZW5kcyBXSS4KICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRMaXN0
ZW5lcihXSS5UaW1lbGluZS5FdmVudC5UaW1lc1VwZGF0ZWQsIHRoaXMubmVlZHNMYXlvdXQsIHRo
aXMpOwogCiAgICAgICAgIHRoaXMucmVzZXQoKTsKKworICAgICAgICBmb3IgKGxldCByZWNvcmQg
b2YgdGltZWxpbmUucmVjb3JkcykKKyAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVj
b3JkKTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTQ3LDEyICs1MCwxMiBAQCBXSS5OZXR3
b3JrVGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdH
cmFwaCBleHRlbmRzIFdJLgogICAgICAgICB0aGlzLl9uZXh0RHVtcFJvdyA9IDA7CiAgICAgICAg
IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3MgPSBbXTsKIAotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGguTWF4aW11bVJvd0NvdW50
OyArK2kpCisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0kuTmV0d29ya1RpbWVsaW5lT3Zl
cnZpZXdHcmFwaC5NYXhpbXVtUm93Q291bnQ7ICsraSkKICAgICAgICAgICAgIHRoaXMuX3RpbWVs
aW5lUmVjb3JkR3JpZFJvd3MucHVzaChbXSk7CiAKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92
ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgZm9yICh2YXIgcm93UmVjb3JkcyBvZiB0aGlzLl90aW1l
bGluZVJlY29yZEdyaWRSb3dzKSB7CisgICAgICAgIGZvciAobGV0IHJvd1JlY29yZHMgb2YgdGhp
cy5fdGltZWxpbmVSZWNvcmRHcmlkUm93cykgewogICAgICAgICAgICAgcm93UmVjb3Jkcy5fX2Vs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgICAgIHJvd1Jl
Y29yZHMuX19lbGVtZW50LmNsYXNzTGlzdC5hZGQoImdyYXBoLXJvdyIpOwogICAgICAgICAgICAg
dGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHJvd1JlY29yZHMuX19lbGVtZW50KTsKQEAgLTEwNiwy
MSArMTA5LDI0IEBAIFdJLk5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBjbGFzcyBOZXR3
b3JrVGltZWxpbmVPdmVydmlld0dyYXBoIGV4dGVuZHMgV0kuCiAKICAgICBfbmV0d29ya1RpbWVs
aW5lUmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgcmVzb3VyY2VUaW1lbGlu
ZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOworICAgICAgICBsZXQgcmVzb3VyY2VUaW1lbGlu
ZVJlY29yZCA9IGV2ZW50LmRhdGEucmVjb3JkOwogICAgICAgICBjb25zb2xlLmFzc2VydChyZXNv
dXJjZVRpbWVsaW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuUmVzb3VyY2VUaW1lbGluZVJlY29yZCk7
CiAKLSAgICAgICAgZnVuY3Rpb24gY29tcGFyZUJ5U3RhcnRUaW1lKGEsIGIpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBhLnN0YXJ0VGltZSAtIGIuc3RhcnRUaW1lOwotICAgICAgICB9
CisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQocmVzb3VyY2VUaW1lbGluZVJlY29yZCk7CiAK
KyAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOworICAgIH0KKworICAgIF9wcm9jZXNzUmVjb3Jk
KHJlc291cmNlVGltZWxpbmVSZWNvcmQpCisgICAgeworICAgICAgICBsZXQgY29tcGFyZUJ5U3Rh
cnRUaW1lID0gKGEsIGIpID0+IGEuc3RhcnRUaW1lIC0gYi5zdGFydFRpbWU7CiAgICAgICAgIGxl
dCBtaW5pbXVtQmFyUGFkZGluZ1RpbWUgPSBXSS5UaW1lbGluZU92ZXJ2aWV3Lk1pbmltdW1EdXJh
dGlvblBlclBpeGVsICogKFdJLlRpbWVsaW5lUmVjb3JkQmFyLk1pbmltdW1XaWR0aFBpeGVscyAr
IFdJLlRpbWVsaW5lUmVjb3JkQmFyLk1pbmltdW1NYXJnaW5QaXhlbHMpOwogCiAgICAgICAgIC8v
IFRyeSB0byBmaW5kIGEgcm93IHRoYXQgaGFzIHJvb20gYW5kIGRvZXMgbm90IG92ZXJsYXAgYSBw
cmV2aW91cyByZWNvcmQuCi0gICAgICAgIHZhciBmb3VuZFJvd0ZvclJlY29yZCA9IGZhbHNlOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3Mu
bGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciByb3dSZWNvcmRzID0gdGhpcy5fdGltZWxp
bmVSZWNvcmRHcmlkUm93c1tpXTsKLSAgICAgICAgICAgIHZhciBsYXN0UmVjb3JkID0gcm93UmVj
b3Jkcy5sYXN0VmFsdWU7CisgICAgICAgIGxldCBmb3VuZFJvd0ZvclJlY29yZCA9IGZhbHNlOwor
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3Mu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxldCByb3dSZWNvcmRzID0gdGhpcy5fdGltZWxp
bmVSZWNvcmRHcmlkUm93c1tpXTsKKyAgICAgICAgICAgIGxldCBsYXN0UmVjb3JkID0gcm93UmVj
b3Jkcy5sYXN0VmFsdWU7CiAKICAgICAgICAgICAgIGlmICghbGFzdFJlY29yZCB8fCBsYXN0UmVj
b3JkLmVuZFRpbWUgKyBtaW5pbXVtQmFyUGFkZGluZ1RpbWUgPD0gcmVzb3VyY2VUaW1lbGluZVJl
Y29yZC5zdGFydFRpbWUpIHsKICAgICAgICAgICAgICAgICBpbnNlcnRPYmplY3RJbnRvU29ydGVk
QXJyYXkocmVzb3VyY2VUaW1lbGluZVJlY29yZCwgcm93UmVjb3JkcywgY29tcGFyZUJ5U3RhcnRU
aW1lKTsKQEAgLTEzMiw5ICsxMzgsOSBAQCBXSS5OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBo
ID0gY2xhc3MgTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHRlbmRzIFdJLgogCiAgICAg
ICAgIGlmICghZm91bmRSb3dGb3JSZWNvcmQpIHsKICAgICAgICAgICAgIC8vIFRyeSB0byBmaW5k
IGEgcm93IHRoYXQgZG9lcyBub3Qgb3ZlcmxhcCBhIHByZXZpb3VzIHJlY29yZCdzIGFjdGl2ZSB0
aW1lLCBidXQgaXQgY2FuIG92ZXJsYXAgdGhlIGluYWN0aXZlIHRpbWUuCi0gICAgICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3RpbWVsaW5lUmVjb3JkR3JpZFJvd3MubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICB2YXIgcm93UmVjb3JkcyA9IHRoaXMuX3RpbWVsaW5lUmVj
b3JkR3JpZFJvd3NbaV07Ci0gICAgICAgICAgICAgICAgdmFyIGxhc3RSZWNvcmQgPSByb3dSZWNv
cmRzLmxhc3RWYWx1ZTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fdGlt
ZWxpbmVSZWNvcmRHcmlkUm93cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxldCBy
b3dSZWNvcmRzID0gdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlkUm93c1tpXTsKKyAgICAgICAgICAg
ICAgICBsZXQgbGFzdFJlY29yZCA9IHJvd1JlY29yZHMubGFzdFZhbHVlOwogICAgICAgICAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGxhc3RSZWNvcmQpOwogCiAgICAgICAgICAgICAgICAgaWYgKGxh
c3RSZWNvcmQuYWN0aXZlU3RhcnRUaW1lICsgbWluaW11bUJhclBhZGRpbmdUaW1lIDw9IHJlc291
cmNlVGltZWxpbmVSZWNvcmQuc3RhcnRUaW1lKSB7CkBAIC0xNTIsOCArMTU4LDYgQEAgV0kuTmV0
d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE5ldHdvcmtUaW1lbGluZU92ZXJ2aWV3
R3JhcGggZXh0ZW5kcyBXSS4KICAgICAgICAgICAgICAgICB0aGlzLl9uZXh0RHVtcFJvdyA9IDA7
CiAgICAgICAgICAgICBpbnNlcnRPYmplY3RJbnRvU29ydGVkQXJyYXkocmVzb3VyY2VUaW1lbGlu
ZVJlY29yZCwgdGhpcy5fdGltZWxpbmVSZWNvcmRHcmlkUm93c1t0aGlzLl9uZXh0RHVtcFJvdysr
XSwgY29tcGFyZUJ5U3RhcnRUaW1lKTsKICAgICAgICAgfQotCi0gICAgICAgIHRoaXMubmVlZHNM
YXlvdXQoKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmlldy5qcwppbmRl
eCBmNjVhNDk1Y2ZiMy4uNWFlYjUwNGUzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29ya1RpbWVsaW5lVmll
dy5qcwpAQCAtMTM2LDYgKzEzNiw5IEBAIFdJLk5ldHdvcmtUaW1lbGluZVZpZXcgPSBjbGFzcyBO
ZXR3b3JrVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAKICAgICAgICAgdGhp
cy5fcGVuZGluZ1JlY29yZHMgPSBbXTsKICAgICAgICAgdGhpcy5fcmVzb3VyY2VEYXRhR3JpZE5v
ZGVNYXAgPSBuZXcgTWFwOworCisgICAgICAgIGZvciAobGV0IHJlY29yZCBvZiB0aW1lbGluZS5y
ZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1JlY29yZChyZWNvcmQpOwogICAgIH0K
IAogICAgIC8vIFB1YmxpYwpAQCAtMjY3LDExICsyNzAsMTYgQEAgV0kuTmV0d29ya1RpbWVsaW5l
VmlldyA9IGNsYXNzIE5ldHdvcmtUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcK
IAogICAgIF9uZXR3b3JrVGltZWxpbmVSZWNvcmRBZGRlZChldmVudCkKICAgICB7Ci0gICAgICAg
IHZhciByZXNvdXJjZVRpbWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CisgICAgICAg
IGxldCByZXNvdXJjZVRpbWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHJlc291cmNlVGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5SZXNv
dXJjZVRpbWVsaW5lUmVjb3JkKTsKIAotICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNo
KHJlc291cmNlVGltZWxpbmVSZWNvcmQpOworICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJl
c291cmNlVGltZWxpbmVSZWNvcmQpOwogCiAgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKICAg
ICB9CisKKyAgICBfcHJvY2Vzc1JlY29yZChyZXNvdXJjZVRpbWVsaW5lUmVjb3JkKQorICAgIHsK
KyAgICAgICAgdGhpcy5fcGVuZGluZ1JlY29yZHMucHVzaChyZXNvdXJjZVRpbWVsaW5lUmVjb3Jk
KTsKKyAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvT3ZlcnZpZXdUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9PdmVydmlld1RpbWVsaW5lVmlldy5qcwppbmRleCBhODk1
Yjc3ZjUxMi4uZThjZWZlOGI1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL092ZXJ2aWV3VGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL092ZXJ2aWV3VGltZWxpbmVWaWV3Lmpz
CkBAIC01Miw3ICs1Miw4IEBAIFdJLk92ZXJ2aWV3VGltZWxpbmVWaWV3ID0gY2xhc3MgT3ZlcnZp
ZXdUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5UaW1lbGluZVZpZXcKICAgICAgICAgdGhpcy5fdGlt
ZWxpbmVSdWxlci5hZGRNYXJrZXIodGhpcy5fY3VycmVudFRpbWVNYXJrZXIpOwogCiAgICAgICAg
IHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJvdmVydmlldyIpOwotICAgICAgICB0aGlzLmFk
ZFN1YnZpZXcodGhpcy5fZGF0YUdyaWQpOworICAgICAgICBpZiAoIXRoaXMuX3JlY29yZGluZy5p
bXBvcnRlZCkKKyAgICAgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9kYXRhR3JpZCk7CiAK
ICAgICAgICAgdGhpcy5fbmV0d29ya1RpbWVsaW5lID0gcmVjb3JkaW5nLnRpbWVsaW5lcy5nZXQo
V0kuVGltZWxpbmVSZWNvcmQuVHlwZS5OZXR3b3JrKTsKICAgICAgICAgaWYgKHRoaXMuX25ldHdv
cmtUaW1lbGluZSkKQEAgLTEyNSw2ICsxMjYsMTEgQEAgV0kuT3ZlcnZpZXdUaW1lbGluZVZpZXcg
PSBjbGFzcyBPdmVydmlld1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaW5lVmlldwogCiAg
ICAgLy8gUHJvdGVjdGVkCiAKKyAgICBnZXQgc2hvd3NJbXBvcnRlZFJlY29yZGluZ01lc3NhZ2Uo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgZGF0YUdyaWROb2Rl
UGF0aENvbXBvbmVudFNlbGVjdGVkKGV2ZW50KQogICAgIHsKICAgICAgICAgbGV0IGRhdGFHcmlk
Tm9kZSA9IGV2ZW50LmRhdGEucGF0aENvbXBvbmVudC50aW1lbGluZURhdGFHcmlkTm9kZTsKQEAg
LTEzNSw2ICsxNDEsOSBAQCBXSS5PdmVydmlld1RpbWVsaW5lVmlldyA9IGNsYXNzIE92ZXJ2aWV3
VGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuVGltZWxpbmVWaWV3CiAKICAgICBsYXlvdXQoKQogICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZy5pbXBvcnRlZCkKKyAgICAgICAgICAgIHJl
dHVybjsKKwogICAgICAgICBsZXQgb2xkWmVyb1RpbWUgPSB0aGlzLl90aW1lbGluZVJ1bGVyLnpl
cm9UaW1lOwogICAgICAgICBsZXQgb2xkU3RhcnRUaW1lID0gdGhpcy5fdGltZWxpbmVSdWxlci5z
dGFydFRpbWU7CiAgICAgICAgIGxldCBvbGRFbmRUaW1lID0gdGhpcy5fdGltZWxpbmVSdWxlci5l
bmRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lVmlldy5qcwppbmRl
eCA2OGUwZDAyZmM0NS4uMjlkZWFkODIwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0Zy
YW1lVGltZWxpbmVWaWV3LmpzCkBAIC05MCw2ICs5MCw5IEBAIFdJLlJlbmRlcmluZ0ZyYW1lVGlt
ZWxpbmVWaWV3ID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZVZpZXcgZXh0ZW5kcyBXSS5U
aW1lCiAgICAgICAgIHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxpbmUuRXZlbnQu
UmVjb3JkQWRkZWQsIHRoaXMuX3JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmRBZGRlZCwgdGhp
cyk7CiAKICAgICAgICAgdGhpcy5fcGVuZGluZ1JlY29yZHMgPSBbXTsKKworICAgICAgICBmb3Ig
KGxldCByZWNvcmQgb2YgdGltZWxpbmUucmVjb3JkcykKKyAgICAgICAgICAgIHRoaXMuX3Byb2Nl
c3NSZWNvcmQocmVjb3JkKTsKICAgICB9CiAKICAgICBzdGF0aWMgZGlzcGxheU5hbWVGb3JEdXJh
dGlvbkZpbHRlcihmaWx0ZXIpCkBAIC0yNzcsMTUgKzI4MCwyMCBAQCBXSS5SZW5kZXJpbmdGcmFt
ZVRpbWVsaW5lVmlldyA9IGNsYXNzIFJlbmRlcmluZ0ZyYW1lVGltZWxpbmVWaWV3IGV4dGVuZHMg
V0kuVGltZQogCiAgICAgX3JlbmRlcmluZ0ZyYW1lVGltZWxpbmVSZWNvcmRBZGRlZChldmVudCkK
ICAgICB7Ci0gICAgICAgIHZhciByZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkID0gZXZlbnQu
ZGF0YS5yZWNvcmQ7CisgICAgICAgIGxldCByZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkID0g
ZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVSZWNvcmQgaW5zdGFuY2VvZiBXSS5SZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3Jk
KTsKICAgICAgICAgY29uc29sZS5hc3NlcnQocmVuZGVyaW5nRnJhbWVUaW1lbGluZVJlY29yZC5j
aGlsZHJlbi5sZW5ndGgsICJNaXNzaW5nIGNoaWxkIHJlY29yZHMgZm9yIHJlbmRlcmluZyBmcmFt
ZS4iKTsKIAotICAgICAgICB0aGlzLl9wZW5kaW5nUmVjb3Jkcy5wdXNoKHJlbmRlcmluZ0ZyYW1l
VGltZWxpbmVSZWNvcmQpOworICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlbmRlcmluZ0Zy
YW1lVGltZWxpbmVSZWNvcmQpOwogCiAgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKICAgICB9
CiAKKyAgICBfcHJvY2Vzc1JlY29yZChyZW5kZXJpbmdGcmFtZVRpbWVsaW5lUmVjb3JkKQorICAg
IHsKKyAgICAgICAgdGhpcy5fcGVuZGluZ1JlY29yZHMucHVzaChyZW5kZXJpbmdGcmFtZVRpbWVs
aW5lUmVjb3JkKTsKKyAgICB9CisKICAgICBfc2NvcGVCYXJTZWxlY3Rpb25EaWRDaGFuZ2UoKQog
ICAgIHsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuZmlsdGVyRGlkQ2hhbmdlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHREZXRh
aWxzVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcwppbmRleCA4OGMzOTJjMDE1OC4uNjli
YzFhZTdiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NjcmlwdERldGFpbHNUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldy5qcwpA
QCAtODcsNiArODcsOSBAQCBXSS5TY3JpcHREZXRhaWxzVGltZWxpbmVWaWV3ID0gY2xhc3MgU2Ny
aXB0RGV0YWlsc1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRpbWVsaQogICAgICAgICB0aW1lbGlu
ZS5hZGRFdmVudExpc3RlbmVyKFdJLlRpbWVsaW5lLkV2ZW50LlJlZnJlc2hlZCwgdGhpcy5fc2Ny
aXB0VGltZWxpbmVSZWNvcmRSZWZyZXNoZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3BlbmRp
bmdSZWNvcmRzID0gW107CisKKyAgICAgICAgZm9yIChsZXQgcmVjb3JkIG9mIHRpbWVsaW5lLnJl
Y29yZHMpCisgICAgICAgICAgICB0aGlzLl9wcm9jZXNzUmVjb3JkKHJlY29yZCk7CiAgICAgfQog
CiAgICAgLy8gUHVibGljCkBAIC0yMjQsMTIgKzIyNywxNyBAQCBXSS5TY3JpcHREZXRhaWxzVGlt
ZWxpbmVWaWV3ID0gY2xhc3MgU2NyaXB0RGV0YWlsc1RpbWVsaW5lVmlldyBleHRlbmRzIFdJLlRp
bWVsaQogCiAgICAgX3NjcmlwdFRpbWVsaW5lUmVjb3JkQWRkZWQoZXZlbnQpCiAgICAgewotICAg
ICAgICB2YXIgc2NyaXB0VGltZWxpbmVSZWNvcmQgPSBldmVudC5kYXRhLnJlY29yZDsKKyAgICAg
ICAgbGV0IHNjcmlwdFRpbWVsaW5lUmVjb3JkID0gZXZlbnQuZGF0YS5yZWNvcmQ7CiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHNjcmlwdFRpbWVsaW5lUmVjb3JkIGluc3RhbmNlb2YgV0kuU2NyaXB0
VGltZWxpbmVSZWNvcmQpOwogCisgICAgICAgIHRoaXMuX3Byb2Nlc3NSZWNvcmQoc2NyaXB0VGlt
ZWxpbmVSZWNvcmQpOworCisgICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICB9CisKKyAg
ICBfcHJvY2Vzc1JlY29yZChzY3JpcHRUaW1lbGluZVJlY29yZCkKKyAgICB7CiAgICAgICAgIHRo
aXMuX3BlbmRpbmdSZWNvcmRzLnB1c2goc2NyaXB0VGltZWxpbmVSZWNvcmQpOwotCi0gICAgICAg
IHRoaXMubmVlZHNMYXlvdXQoKTsKICAgICB9CiAKICAgICBfc2NyaXB0VGltZWxpbmVSZWNvcmRS
ZWZyZXNoZWQoZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZU92ZXJ2aWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5qcwppbmRleCA1NzUzNmI3NGQ4
OS4uYWE2YTNhNDYzZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lT3ZlcnZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVPdmVydmlldy5qcwpAQCAtMTE2LDEwICsx
MTYsMjggQEAgV0kuVGltZWxpbmVPdmVydmlldyA9IGNsYXNzIFRpbWVsaW5lT3ZlcnZpZXcgZXh0
ZW5kcyBXSS5WaWV3CiAKICAgICAgICAgdGhpcy5fdmlld01vZGVEaWRDaGFuZ2UoKTsKIAorICAg
ICAgICBXSS50aW1lbGluZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UaW1lbGluZU1hbmFn
ZXIuRXZlbnQuUmVjb3JkaW5nSW1wb3J0ZWQsIHRoaXMuX3JlY29yZGluZ0ltcG9ydGVkLCB0aGlz
KTsKICAgICAgICAgV0kudGltZWxpbmVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGltZWxp
bmVNYW5hZ2VyLkV2ZW50LkNhcHR1cmluZ1N0YXJ0ZWQsIHRoaXMuX2NhcHR1cmluZ1N0YXJ0ZWQs
IHRoaXMpOwogICAgICAgICBXSS50aW1lbGluZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5U
aW1lbGluZU1hbmFnZXIuRXZlbnQuQ2FwdHVyaW5nU3RvcHBlZCwgdGhpcy5fY2FwdHVyaW5nU3Rv
cHBlZCwgdGhpcyk7CiAgICAgfQogCisgICAgLy8gSW1wb3J0IC8gRXhwb3J0CisKKyAgICBleHBv
cnREYXRhKCkKKyAgICB7CisgICAgICAgIGxldCBqc29uID0geworICAgICAgICAgICAgc2Vjb25k
c1BlclBpeGVsOiB0aGlzLnNlY29uZHNQZXJQaXhlbCwKKyAgICAgICAgICAgIHNjcm9sbFN0YXJ0
VGltZTogdGhpcy5zY3JvbGxTdGFydFRpbWUsCisgICAgICAgICAgICBzZWxlY3Rpb25TdGFydFRp
bWU6IHRoaXMuc2VsZWN0aW9uU3RhcnRUaW1lLAorICAgICAgICAgICAgc2VsZWN0aW9uRHVyYXRp
b246IHRoaXMuc2VsZWN0aW9uRHVyYXRpb24sCisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHRo
aXMuX3NlbGVjdGVkVGltZWxpbmUpCisgICAgICAgICAgICBqc29uLnNlbGVjdGVkVGltZWxpbmVU
eXBlID0gdGhpcy5fc2VsZWN0ZWRUaW1lbGluZS50eXBlOworCisgICAgICAgIHJldHVybiBqc29u
OworICAgIH0KKwogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHNlbGVjdGVkVGltZWxpbmUoKQpA
QCAtNjU3LDYgKzY3NSw4IEBAIFdJLlRpbWVsaW5lT3ZlcnZpZXcgPSBjbGFzcyBUaW1lbGluZU92
ZXJ2aWV3IGV4dGVuZHMgV0kuVmlldwogICAgICAgICAgICAgb3ZlcnZpZXdHcmFwaC5oaWRkZW4o
KTsKICAgICAgICAgICAgIHRyZWVFbGVtZW50LmhpZGRlbiA9IHRydWU7CiAgICAgICAgIH0KKwor
ICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CiAgICAgfQogCiAgICAgX2luc3RydW1lbnRSZW1v
dmVkKGV2ZW50KQpAQCAtMTAxMiwxMyArMTAzMiwzNiBAQCBXSS5UaW1lbGluZU92ZXJ2aWV3ID0g
Y2xhc3MgVGltZWxpbmVPdmVydmlldyBleHRlbmRzIFdJLlZpZXcKICAgICAgICAgdGhpcy5fZWRp
dGluZ0luc3RydW1lbnRzRGlkQ2hhbmdlKCk7CiAgICAgfQogCi0gICAgX2NhcHR1cmluZ1N0YXJ0
ZWQoKQorICAgIF9yZWNvcmRpbmdJbXBvcnRlZChldmVudCkKKyAgICB7CisgICAgICAgIGxldCB7
b3ZlcnZpZXdEYXRhfSA9IGV2ZW50LmRhdGE7CisKKyAgICAgICAgaWYgKG92ZXJ2aWV3RGF0YS5z
ZWNvbmRzUGVyUGl4ZWwgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMuc2Vjb25kc1Bl
clBpeGVsID0gb3ZlcnZpZXdEYXRhLnNlY29uZHNQZXJQaXhlbDsKKyAgICAgICAgaWYgKG92ZXJ2
aWV3RGF0YS5zY3JvbGxTdGFydFRpbWUgIT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRoaXMu
c2Nyb2xsU3RhcnRUaW1lID0gb3ZlcnZpZXdEYXRhLnNjcm9sbFN0YXJ0VGltZTsKKyAgICAgICAg
aWYgKG92ZXJ2aWV3RGF0YS5zZWxlY3Rpb25TdGFydFRpbWUgIT09IHVuZGVmaW5lZCkKKyAgICAg
ICAgICAgIHRoaXMuc2VsZWN0aW9uU3RhcnRUaW1lID0gb3ZlcnZpZXdEYXRhLnNlbGVjdGlvblN0
YXJ0VGltZTsKKyAgICAgICAgaWYgKG92ZXJ2aWV3RGF0YS5zZWxlY3Rpb25EdXJhdGlvbiAhPT0g
dW5kZWZpbmVkKSB7CisgICAgICAgICAgICBpZiAob3ZlcnZpZXdEYXRhLnNlbGVjdGlvbkR1cmF0
aW9uID09PSBOdW1iZXIuTUFYX1ZBTFVFKQorICAgICAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5l
UnVsZXIuc2VsZWN0RW50aXJlUmFuZ2UoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0aGlzLnNlbGVjdGlvbkR1cmF0aW9uID0gb3ZlcnZpZXdEYXRhLnNlbGVjdGlvbkR1cmF0
aW9uOworICAgICAgICB9CisgICAgICAgIGlmIChvdmVydmlld0RhdGEuc2VsZWN0ZWRUaW1lbGlu
ZVR5cGUgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgbGV0IHRpbWVsaW5lID0gdGhpcy5f
cmVjb3JkaW5nLnRpbWVsaW5lRm9yUmVjb3JkVHlwZShvdmVydmlld0RhdGEuc2VsZWN0ZWRUaW1l
bGluZVR5cGUpOworICAgICAgICAgICAgaWYgKHRpbWVsaW5lKQorICAgICAgICAgICAgICAgIHRo
aXMuc2VsZWN0ZWRUaW1lbGluZSA9IHRpbWVsaW5lOworICAgICAgICB9CisgICAgfQorCisgICAg
X2NhcHR1cmluZ1N0YXJ0ZWQoZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLl9lZGl0SW5zdHJ1
bWVudHNCdXR0b24uZW5hYmxlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9zdG9wRWRpdGluZ0lu
c3RydW1lbnRzKCk7CiAgICAgfQogCi0gICAgX2NhcHR1cmluZ1N0b3BwZWQoKQorICAgIF9jYXB0
dXJpbmdTdG9wcGVkKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5fZWRpdEluc3RydW1lbnRz
QnV0dG9uLmVuYWJsZWQgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkQmFyLmNzcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkQmFyLmNz
cwppbmRleCAwYjMwZGFlMTg4Yy4uYTVkNjBlNWY5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkQmFyLmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29y
ZEJhci5jc3MKQEAgLTExMSw4ICsxMTEsOCBAQCBib2R5W2Rpcj1ydGxdIDpmb2N1cyAuc2VsZWN0
ZWQgLnRpbWVsaW5lLXJlY29yZC1iYXIuaGFzLWluYWN0aXZlLXNlZ21lbnQgPiAuc2VnbQogfQog
CiAKLS50aW1lbGluZS1yZWNvcmQtYmFyLnRpbWVsaW5lLXJlY29yZC10eXBlLWxheW91dC5sYXlv
dXQtdGltZWxpbmUtcmVjb3JkLXBhaW50ID4gLnNlZ21lbnQsCi0udGltZWxpbmUtcmVjb3JkLWJh
ci50aW1lbGluZS1yZWNvcmQtdHlwZS1sYXlvdXQubGF5b3V0LXRpbWVsaW5lLXJlY29yZC1jb21w
b3NpdGUgPiAuc2VnbWVudCB7CisudGltZWxpbmUtcmVjb3JkLWJhci50aW1lbGluZS1yZWNvcmQt
dHlwZS1sYXlvdXQucGFpbnQgPiAuc2VnbWVudCwKKy50aW1lbGluZS1yZWNvcmQtYmFyLnRpbWVs
aW5lLXJlY29yZC10eXBlLWxheW91dC5jb21wb3NpdGUgPiAuc2VnbWVudCB7CiAgICAgYmFja2dy
b3VuZC1jb2xvcjogaHNsKDc2LCA0OSUsIDYwJSk7CiAgICAgYm9yZGVyLWNvbG9yOiBoc2woNzks
IDQ1JSwgNTElKTsKIH0KQEAgLTEyMiw3ICsxMjIsNyBAQCBib2R5W2Rpcj1ydGxdIDpmb2N1cyAu
c2VsZWN0ZWQgLnRpbWVsaW5lLXJlY29yZC1iYXIuaGFzLWluYWN0aXZlLXNlZ21lbnQgPiAuc2Vn
bQogICAgIGJvcmRlci1jb2xvcjogaHNsKDI3MywgMzMlLCA1OCUpOwogfQogCi0udGltZWxpbmUt
cmVjb3JkLWJhci50aW1lbGluZS1yZWNvcmQtdHlwZS1zY3JpcHQuc2NyaXB0LXRpbWVsaW5lLXJl
Y29yZC1nYXJiYWdlLWNvbGxlY3RlZCA+IC5zZWdtZW50IHsKKy50aW1lbGluZS1yZWNvcmQtYmFy
LnRpbWVsaW5lLXJlY29yZC10eXBlLXNjcmlwdC5nYXJiYWdlLWNvbGxlY3RlZCA+IC5zZWdtZW50
IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjMsIDY5JSwgNzMlKTsKICAgICBib3JkZXIt
Y29sb3I6IGhzbCgxMSwgNTQlLCA2MiUpOyAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZp
ZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxp
bmVSZWNvcmRpbmdDb250ZW50Vmlldy5jc3MKaW5kZXggODI1ZWJhZDI4NWQuLmNmNmZiZmNhZDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9U
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmNzcwpA
QCAtNTksNyArNTksNyBAQAogICAgIC0tc2NvcGUtYmFyLWJvcmRlci1jb2xvci1vdmVycmlkZTog
dHJhbnNwYXJlbnQ7CiB9CiAKLS5jb250ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nID4gLmNv
bnRlbnQtYnJvd3NlciAucmVjb3JkaW5nLXByb2dyZXNzIHsKKy5jb250ZW50LXZpZXcudGltZWxp
bmUtcmVjb3JkaW5nID4gLmNvbnRlbnQtYnJvd3NlciA6bWF0Y2hlcygucmVjb3JkaW5nLXByb2dy
ZXNzLCAucmVjb3JkaW5nLWltcG9ydGVkKSB7CiAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAg
IGxlZnQ6IDA7CiAgICAgcmlnaHQ6IDA7CkBAIC02OSw3ICs2OSw3IEBACiAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdmFyKC0tcGFuZWwtYmFja2dyb3VuZC1jb2xvci1saWdodCk7CiB9CiAKLS5jb250
ZW50LXZpZXcudGltZWxpbmUtcmVjb3JkaW5nID4gLmNvbnRlbnQtYnJvd3NlciAucmVjb3JkaW5n
LXByb2dyZXNzID4gLnN0YXR1cyB7CisuY29udGVudC12aWV3LnRpbWVsaW5lLXJlY29yZGluZyA+
IC5jb250ZW50LWJyb3dzZXIgOm1hdGNoZXMoLnJlY29yZGluZy1wcm9ncmVzcywgLnJlY29yZGlu
Zy1pbXBvcnRlZCkgPiAuc3RhdHVzIHsKICAgICBtYXJnaW4tdG9wOiA0MHB4OwogICAgIG1hcmdp
bi1ib3R0b206IDEwcHg7CiAgICAgdGV4dC1hbGlnbjogY2VudGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdD
b250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcuanMKaW5kZXggMjMyMmI3MjE0YTMuLjljZWI3
ZjY0Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcu
anMKQEAgLTY0LDYgKzY0LDE5IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBj
bGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAgICAgICAgICAg
ICBXSS5zZXR0aW5ncy50aW1lbGluZXNBdXRvU3RvcC5hZGRFdmVudExpc3RlbmVyKFdJLlNldHRp
bmcuRXZlbnQuQ2hhbmdlZCwgdGhpcy5faGFuZGxlVGltZWxpbmVzQXV0b1N0b3BTZXR0aW5nQ2hh
bmdlZCwgdGhpcyk7CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZp
Z2F0aW9uSXRlbSA9IG5ldyBXSS5CdXR0b25OYXZpZ2F0aW9uSXRlbSgiZXhwb3J0IiwgV0kuVUlT
dHJpbmcoIkV4cG9ydCIpLCAiSW1hZ2VzL0V4cG9ydC5zdmciLCAxNSwgMTUpOworICAgICAgICB0
aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS50b29sVGlwID0gV0kuVUlTdHJpbmcoIkV4
cG9ydCAoJXMpIikuZm9ybWF0KFdJLnNhdmVLZXlib2FyZFNob3J0Y3V0LmRpc3BsYXlOYW1lKTsK
KyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uYnV0dG9uU3R5bGUgPSBX
SS5CdXR0b25OYXZpZ2F0aW9uSXRlbS5TdHlsZS5JbWFnZUFuZFRleHQ7CisgICAgICAgIHRoaXMu
X2V4cG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLnZpc2liaWxpdHlQcmlvcml0eSA9IFdJLk5hdmln
YXRpb25JdGVtLlZpc2liaWxpdHlQcmlvcml0eS5Mb3c7CisgICAgICAgIHRoaXMuX2V4cG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2aWdhdGlvbkl0
ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2Vk
LCB0aGlzKTsKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxl
ZCA9IGZhbHNlOworCisgICAgICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtID0g
bmV3IFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJpbXBvcnQiLCBXSS5VSVN0cmluZygiSW1wb3J0
IiksICJJbWFnZXMvSW1wb3J0LnN2ZyIsIDE1LCAxNSk7CisgICAgICAgIHRoaXMuX2ltcG9ydEJ1
dHRvbk5hdmlnYXRpb25JdGVtLnRvb2xUaXAgPSBXSS5VSVN0cmluZygiSW1wb3J0Iik7CisgICAg
ICAgIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtLmJ1dHRvblN0eWxlID0gV0kuQnV0
dG9uTmF2aWdhdGlvbkl0ZW0uU3R5bGUuSW1hZ2VBbmRUZXh0OworICAgICAgICB0aGlzLl9pbXBv
cnRCdXR0b25OYXZpZ2F0aW9uSXRlbS52aXNpYmlsaXR5UHJpb3JpdHkgPSBXSS5OYXZpZ2F0aW9u
SXRlbS5WaXNpYmlsaXR5UHJpb3JpdHkuTG93OworICAgICAgICB0aGlzLl9pbXBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbS5hZGRFdmVudExpc3RlbmVyKFdJLkJ1dHRvbk5hdmlnYXRpb25JdGVtLkV2
ZW50LkNsaWNrZWQsIHRoaXMuX2ltcG9ydEJ1dHRvbk5hdmlnYXRpb25JdGVtQ2xpY2tlZCwgdGhp
cyk7CisKICAgICAgICAgdGhpcy5fY2xlYXJUaW1lbGluZU5hdmlnYXRpb25JdGVtID0gbmV3IFdJ
LkJ1dHRvbk5hdmlnYXRpb25JdGVtKCJjbGVhci10aW1lbGluZSIsIFdJLlVJU3RyaW5nKCJDbGVh
ciBUaW1lbGluZSAoJXMpIikuZm9ybWF0KFdJLmNsZWFyS2V5Ym9hcmRTaG9ydGN1dC5kaXNwbGF5
TmFtZSksICJJbWFnZXMvTmF2aWdhdGlvbkl0ZW1UcmFzaC5zdmciLCAxNSwgMTUpOwogICAgICAg
ICB0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0udmlzaWJpbGl0eVByaW9yaXR5ID0g
V0kuTmF2aWdhdGlvbkl0ZW0uVmlzaWJpbGl0eVByaW9yaXR5LkxvdzsKICAgICAgICAgdGhpcy5f
Y2xlYXJUaW1lbGluZU5hdmlnYXRpb25JdGVtLmFkZEV2ZW50TGlzdGVuZXIoV0kuQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uRXZlbnQuQ2xpY2tlZCwgdGhpcy5fY2xlYXJUaW1lbGluZSwgdGhpcyk7CkBA
IC03NCw2ICs4Nyw5IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBU
aW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAgICAgICAgIHRoaXMuX3By
b2dyZXNzVmlldyA9IG5ldyBXSS5UaW1lbGluZVJlY29yZGluZ1Byb2dyZXNzVmlldzsKICAgICAg
ICAgdGhpcy5fdGltZWxpbmVDb250ZW50QnJvd3Nlci5hZGRTdWJ2aWV3KHRoaXMuX3Byb2dyZXNz
Vmlldyk7CiAKKyAgICAgICAgdGhpcy5faW1wb3J0ZWRWaWV3ID0gbmV3IFdJLlRpbWVsaW5lUmVj
b3JkaW5nSW1wb3J0ZWRWaWV3OworICAgICAgICB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2Vy
LmFkZFN1YnZpZXcodGhpcy5faW1wb3J0ZWRWaWV3KTsKKwogICAgICAgICB0aGlzLl90aW1lbGlu
ZVZpZXdNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9wYXRoQ29tcG9uZW50TWFwID0gbmV3
IE1hcDsKIApAQCAtMTA5LDYgKzEyNSwxMSBAQCBXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRW
aWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLgogICAg
ICAgICAgICAgdGhpcy5faW5zdHJ1bWVudEFkZGVkKGluc3RydW1lbnQpOwogCiAgICAgICAgIHRo
aXMuc2hvd092ZXJ2aWV3VGltZWxpbmVWaWV3KCk7CisKKyAgICAgICAgaWYgKHRoaXMuX3JlY29y
ZGluZy5pbXBvcnRlZCkgeworICAgICAgICAgICAgbGV0IHtzdGFydFRpbWUsIGVuZFRpbWV9ID0g
dGhpcy5fcmVjb3JkaW5nOworICAgICAgICAgICAgdGhpcy5fdXBkYXRlVGltZXMoc3RhcnRUaW1l
LCBlbmRUaW1lLCBlbmRUaW1lKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFB1YmxpYwpA
QCAtMTY3LDYgKzE4OCw5IEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFz
cyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAgICAgICAgIGlmICh0
aGlzLl9hdXRvU3RvcENoZWNrYm94TmF2aWdhdGlvbkl0ZW0pCiAgICAgICAgICAgICBuYXZpZ2F0
aW9uSXRlbXMucHVzaCh0aGlzLl9hdXRvU3RvcENoZWNrYm94TmF2aWdhdGlvbkl0ZW0pOwogICAg
ICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaChuZXcgV0kuRGl2aWRlck5hdmlnYXRpb25JdGVtKTsK
KyAgICAgICAgbmF2aWdhdGlvbkl0ZW1zLnB1c2godGhpcy5faW1wb3J0QnV0dG9uTmF2aWdhdGlv
bkl0ZW0pOworICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9leHBvcnRCdXR0b25O
YXZpZ2F0aW9uSXRlbSk7CisgICAgICAgIG5hdmlnYXRpb25JdGVtcy5wdXNoKG5ldyBXSS5EaXZp
ZGVyTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICBuYXZpZ2F0aW9uSXRlbXMucHVzaCh0aGlzLl9j
bGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0pOwogICAgICAgICByZXR1cm4gbmF2aWdhdGlvbkl0
ZW1zOwogICAgIH0KQEAgLTE3OSwxNCArMjAzLDEyIEBAIFdJLlRpbWVsaW5lUmVjb3JkaW5nQ29u
dGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
CiAKICAgICBnZXQgc3VwcG9ydHNTYXZlKCkKICAgICB7Ci0gICAgICAgIGxldCBjdXJyZW50Q29u
dGVudFZpZXcgPSB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2VyLmN1cnJlbnRDb250ZW50Vmll
dzsKLSAgICAgICAgcmV0dXJuIGN1cnJlbnRDb250ZW50VmlldyAmJiBjdXJyZW50Q29udGVudFZp
ZXcuc3VwcG9ydHNTYXZlOworICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkaW5nLmNhbkV4cG9y
dCgpOwogICAgIH0KIAogICAgIGdldCBzYXZlRGF0YSgpCiAgICAgewotICAgICAgICBsZXQgY3Vy
cmVudENvbnRlbnRWaWV3ID0gdGhpcy5fdGltZWxpbmVDb250ZW50QnJvd3Nlci5jdXJyZW50Q29u
dGVudFZpZXc7Ci0gICAgICAgIHJldHVybiBjdXJyZW50Q29udGVudFZpZXcgJiYgY3VycmVudENv
bnRlbnRWaWV3LnNhdmVEYXRhIHx8IG51bGw7CisgICAgICAgIHJldHVybiB7Y3VzdG9tU2F2ZUhh
bmRsZXI6ICgpID0+IHsgdGhpcy5fZXhwb3J0VGltZWxpbmVSZWNvcmRpbmcoKTsgfX07CiAgICAg
fQogCiAgICAgZ2V0IGN1cnJlbnRUaW1lbGluZVZpZXcoKQpAQCAtMjAwLDcgKzIyMiw5IEBAIFdJ
LlRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0Nv
bnRlbnRWaWV3IGV4dGVuZHMgV0kuCiAKICAgICAgICAgdGhpcy5fdGltZWxpbmVPdmVydmlldy5z
aG93bigpOwogICAgICAgICB0aGlzLl90aW1lbGluZUNvbnRlbnRCcm93c2VyLnNob3duKCk7CisK
ICAgICAgICAgdGhpcy5fY2xlYXJUaW1lbGluZU5hdmlnYXRpb25JdGVtLmVuYWJsZWQgPSAhdGhp
cy5fcmVjb3JkaW5nLnJlYWRvbmx5ICYmICFpc05hTih0aGlzLl9yZWNvcmRpbmcuc3RhcnRUaW1l
KTsKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IHRo
aXMuX3JlY29yZGluZy5jYW5FeHBvcnQoKTsKIAogICAgICAgICB0aGlzLl9jdXJyZW50Q29udGVu
dFZpZXdEaWRDaGFuZ2UoKTsKIApAQCAtMjkyLDYgKzMxNiw3IEBAIFdJLlRpbWVsaW5lUmVjb3Jk
aW5nQ29udGVudFZpZXcgPSBjbGFzcyBUaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3IGV4dGVu
ZHMgV0kuCiAgICAgICAgIHRoaXMuX3RpbWVsaW5lT3ZlcnZpZXcudmlld01vZGUgPSBuZXdWaWV3
TW9kZTsKICAgICAgICAgdGhpcy5fdXBkYXRlVGltZWxpbmVPdmVydmlld0hlaWdodCgpOwogICAg
ICAgICB0aGlzLl91cGRhdGVQcm9ncmVzc1ZpZXcoKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlSW1w
b3J0ZWRWaWV3KCk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUZpbHRlckJhcigpOwogCiAgICAgICAg
IGlmICh0aW1lbGluZVZpZXcpIHsKQEAgLTQ5Nyw2ICs1MjIsNyBAQCBXSS5UaW1lbGluZVJlY29y
ZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyBleHRl
bmRzIFdJLgogICAgICAgICBpZiAoIXRoaXMuX3VwZGF0aW5nKQogICAgICAgICAgICAgdGhpcy5f
c3RhcnRVcGRhdGluZ0N1cnJlbnRUaW1lKHN0YXJ0VGltZSk7CiAgICAgICAgIHRoaXMuX2NsZWFy
VGltZWxpbmVOYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0gIXRoaXMuX3JlY29yZGluZy5yZWFkb25s
eTsKKyAgICAgICAgdGhpcy5fZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZh
bHNlOwogCiAgICAgICAgIC8vIEEgZGlzY29udGludWl0eSBvY2N1cnMgd2hlbiB0aGUgcmVjb3Jk
aW5nIGlzIHN0b3BwZWQgYW5kIHJlc3VtZWQgYXQKICAgICAgICAgLy8gYSBmdXR1cmUgdGltZS4g
Q2FwdHVyaW5nIHN0YXJ0ZWQgc2lnbmFscyB0aGUgZW5kIG9mIHRoZSBjdXJyZW50CkBAIC01MTgs
NiArNTQ0LDggQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVs
aW5lUmVjb3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVRpbWVsaW5lVmlld1RpbWVzKHRoaXMuY3VycmVudFRpbWVsaW5lVmlldyk7CiAKICAgICAg
ICAgdGhpcy5fZGlzY29udGludWl0eVN0YXJ0VGltZSA9IGV2ZW50LmRhdGEuZW5kVGltZSB8fCB0
aGlzLl9jdXJyZW50VGltZTsKKworICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9u
SXRlbS5lbmFibGVkID0gdGhpcy5fcmVjb3JkaW5nLmNhbkV4cG9ydCgpOwogICAgIH0KIAogICAg
IF9kZWJ1Z2dlclBhdXNlZChldmVudCkKQEAgLTU2Miw2ICs1OTAsNDIgQEAgV0kuVGltZWxpbmVS
ZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5nQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS4KICAgICAgICAgdGhpcy5fYXV0b1N0b3BDaGVja2JveE5hdmlnYXRpb25JdGVt
LmNoZWNrZWQgPSBXSS5zZXR0aW5ncy50aW1lbGluZXNBdXRvU3RvcC52YWx1ZTsKICAgICB9CiAK
KyAgICBfZXhwb3J0VGltZWxpbmVSZWNvcmRpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IGpzb24g
PSB7CisgICAgICAgICAgICB2ZXJzaW9uOiBXSS5UaW1lbGluZVJlY29yZGluZy5TZXJpYWxpemF0
aW9uVmVyc2lvbiwKKyAgICAgICAgICAgIHJlY29yZGluZzogdGhpcy5fcmVjb3JkaW5nLmV4cG9y
dERhdGEoKSwKKyAgICAgICAgICAgIG92ZXJ2aWV3OiB0aGlzLl90aW1lbGluZU92ZXJ2aWV3LmV4
cG9ydERhdGEoKSwKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKCFqc29uLnJlY29yZGluZyB8fCAh
anNvbi5vdmVydmlldykgeworICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmJlZXAo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCBmcmFtZU5h
bWUgPSBudWxsOworICAgICAgICBsZXQgbWFpbkZyYW1lID0gV0kubmV0d29ya01hbmFnZXIubWFp
bkZyYW1lOworICAgICAgICBpZiAobWFpbkZyYW1lKQorICAgICAgICAgICAgZnJhbWVOYW1lID0g
bWFpbkZyYW1lLm1haW5SZXNvdXJjZS51cmxDb21wb25lbnRzLmhvc3QgfHwgbWFpbkZyYW1lLm1h
aW5SZXNvdXJjZS5kaXNwbGF5TmFtZTsKKworICAgICAgICBsZXQgZmlsZW5hbWUgPSBmcmFtZU5h
bWUgPyBgJHtmcmFtZU5hbWV9LXJlY29yZGluZ2AgOiB0aGlzLl9yZWNvcmRpbmcuZGlzcGxheU5h
bWU7CisgICAgICAgIGxldCB1cmwgPSAid2ViLWluc3BlY3RvcjovLy8iICsgZW5jb2RlVVJJKGZp
bGVuYW1lKSArICIuanNvbiI7CisgICAgICAgIFdJLkZpbGVVdGlsaXRpZXMuc2F2ZSh7CisgICAg
ICAgICAgICB1cmwsCisgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShqc29uKSwK
KyAgICAgICAgICAgIGZvcmNlU2F2ZUFzOiB0cnVlLAorICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBfZXhwb3J0QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdGhpcy5fZXhwb3J0VGltZWxpbmVSZWNvcmRpbmcoKTsKKyAgICB9CisKKyAgICBfaW1wb3J0
QnV0dG9uTmF2aWdhdGlvbkl0ZW1DbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgV0kuRmls
ZVV0aWxpdGllcy5pbXBvcnRKU09OKChyZXN1bHQpID0+IFdJLnRpbWVsaW5lTWFuYWdlci5wcm9j
ZXNzSlNPTihyZXN1bHQpKTsKKyAgICB9CisKICAgICBfY2xlYXJUaW1lbGluZShldmVudCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLl9yZWNvcmRpbmcucmVhZG9ubHkpCkBAIC02NjQsNiArNzI4
LDcgQEAgV0kuVGltZWxpbmVSZWNvcmRpbmdDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lUmVj
b3JkaW5nQ29udGVudFZpZXcgZXh0ZW5kcyBXSS4KICAgICAgICAgdGhpcy5fdGltZWxpbmVPdmVy
dmlldy5yZXNldCgpOwogICAgICAgICB0aGlzLl9vdmVydmlld1RpbWVsaW5lVmlldy5yZXNldCgp
OwogICAgICAgICB0aGlzLl9jbGVhclRpbWVsaW5lTmF2aWdhdGlvbkl0ZW0uZW5hYmxlZCA9IGZh
bHNlOworICAgICAgICB0aGlzLl9leHBvcnRCdXR0b25OYXZpZ2F0aW9uSXRlbS5lbmFibGVkID0g
ZmFsc2U7CiAgICAgfQogCiAgICAgX3JlY29yZGluZ1VubG9hZGVkKGV2ZW50KQpAQCAtODc3LDYg
Kzk0MiwxMSBAQCBXSS5UaW1lbGluZVJlY29yZGluZ0NvbnRlbnRWaWV3ID0gY2xhc3MgVGltZWxp
bmVSZWNvcmRpbmdDb250ZW50VmlldyBleHRlbmRzIFdJLgogICAgICAgICB0aGlzLl9wcm9ncmVz
c1ZpZXcudmlzaWJsZSA9IGlzQ2FwdHVyaW5nICYmIHRoaXMuY3VycmVudFRpbWVsaW5lVmlldyAm
JiAhdGhpcy5jdXJyZW50VGltZWxpbmVWaWV3LnNob3dzTGl2ZVJlY29yZGluZ0RhdGE7CiAgICAg
fQogCisgICAgX3VwZGF0ZUltcG9ydGVkVmlldygpCisgICAgeworICAgICAgICB0aGlzLl9pbXBv
cnRlZFZpZXcudmlzaWJsZSA9IHRoaXMuX3JlY29yZGluZy5pbXBvcnRlZCAmJiB0aGlzLmN1cnJl
bnRUaW1lbGluZVZpZXcgJiYgdGhpcy5jdXJyZW50VGltZWxpbmVWaWV3LnNob3dzSW1wb3J0ZWRS
ZWNvcmRpbmdNZXNzYWdlOworICAgIH0KKwogICAgIF91cGRhdGVGaWx0ZXJCYXIoKQogICAgIHsK
ICAgICAgICAgdGhpcy5fZmlsdGVyQmFyTmF2aWdhdGlvbkl0ZW0uaGlkZGVuID0gIXRoaXMuY3Vy
cmVudFRpbWVsaW5lVmlldyB8fCAhdGhpcy5jdXJyZW50VGltZWxpbmVWaWV3LnNob3dzRmlsdGVy
QmFyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVSZWNvcmRpbmdJbXBvcnRlZFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRpbmdJbXBvcnRlZFZpZXcuY3Nz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNTE0MmI5Mzc2MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lUmVjb3JkaW5nSW1wb3J0ZWRWaWV3LmNzcwpAQCAtMCwwICsxLDMwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworLmNvbnRlbnQtdmlldy50aW1lbGluZS1yZWNvcmRpbmcgPiAuY29udGVudC1icm93
c2VyIC5yZWNvcmRpbmctaW1wb3J0ZWQgLm1lc3NhZ2UtdGV4dC12aWV3ID4gLm1lc3NhZ2Ugewor
ICAgIGZvbnQtc2l6ZTogdmFyKC0tbWVzc2FnZS10ZXh0LXZpZXctbGFyZ2UtZm9udC1zaXplKTsK
KyAgICBmb250LXdlaWdodDogNjAwOworICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZVJlY29yZGluZ0ltcG9ydGVkVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkaW5nSW1wb3J0ZWRWaWV3LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMWQxYjE4YWFlZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5l
UmVjb3JkaW5nSW1wb3J0ZWRWaWV3LmpzCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitX
SS5UaW1lbGluZVJlY29yZGluZ0ltcG9ydGVkVmlldyA9IGNsYXNzIFRpbWVsaW5lUmVjb3JkaW5n
SW1wb3J0ZWRWaWV3IGV4dGVuZHMgV0kuVmlldworeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7
CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQo
InJlY29yZGluZy1pbXBvcnRlZCIpOworICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQo
V0kuY3JlYXRlTWVzc2FnZVRleHRWaWV3KFdJLlVJU3RyaW5nKCJJbXBvcnRlZCBUaW1lbGluZSBS
ZWNvcmRpbmciKSkpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IHZpc2libGUo
KSB7IHJldHVybiB0aGlzLl92aXNpYmxlOyB9CisKKyAgICBzZXQgdmlzaWJsZSh4KQorICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX3Zpc2libGUgPT09IHgpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgLy8gRklYTUU6IHJlbW92ZSBvbmNlIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTA3
NDE+IGlzIGZpeGVkLgorICAgICAgICB0aGlzLl92aXNpYmxlID0geDsKKyAgICAgICAgdGhpcy5l
bGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsICF0aGlzLl92aXNpYmxlKTsKKyAgICB9
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVGltZWxpbmVWaWV3LmpzCmluZGV4IDg1ZTdhZmQyYWViLi5hYjEzY2NiODNhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxp
bmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1RpbWVsaW5lVmlldy5qcwpAQCAtNTYsNiArNTYsMTIgQEAgV0kuVGltZWxpbmVWaWV3ID0gY2xh
c3MgVGltZWxpbmVWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCisgICAgZ2V0IHNob3dzSW1wb3J0ZWRSZWNvcmRpbmdNZXNzYWdlKCkKKyAg
ICB7CisgICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHN1Yi1jbGFzc2VzIGlmIG5lZWRlZC4KKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIGdldCBzaG93c0ZpbHRlckJhcigpCiAg
ICAgewogICAgICAgICAvLyBJbXBsZW1lbnRlZCBieSBzdWItY2xhc3NlcyBpZiBuZWVkZWQuCg==
</data>
<flag name="review"
          id="381246"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
      

    </bug>

</bugzilla>