<?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>135212</bug_id>
          
          <creation_ts>2014-07-23 14:33:54 -0700</creation_ts>
          <short_desc>Web Inspector: ReplayManager shouldn&apos;t assume replay status when the inspector is opened</short_desc>
          <delta_ts>2014-08-05 14:59:02 -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>528+ (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>
          
          <blocked>135225</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024337</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-07-23 14:33:54 -0700</bug_when>
    <thetext>The current implementation blindly assumes that no capturing or replaying has happened yet when the ReplayManager is being constructed. This breaks replay when the inspector is closed and then later reopened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024338</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-07-23 14:34:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/17785105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024357</commentid>
    <comment_count>2</comment_count>
      <attachid>235384</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-07-23 15:06:36 -0700</bug_when>
    <thetext>Created attachment 235384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024358</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-23 15:09:27 -0700</bug_when>
    <thetext>Attachment 235384 did not pass style-queue:


ERROR: Source/WebCore/inspector/InspectorReplayAgent.h:107:  The parameter name &quot;sessionState&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/inspector/InspectorReplayAgent.h:107:  The parameter name &quot;segmentState&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 7 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>1026906</commentid>
    <comment_count>4</comment_count>
      <attachid>235384</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-08-05 11:44:37 -0700</bug_when>
    <thetext>Comment on attachment 235384
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/ReplayManager.js:55
&gt; +    this._initializationPromise = ReplayAgent.currentReplayState.promise()

No need for .promise() now.

&gt; Source/WebInspectorUI/UserInterface/Controllers/ReplayManager.js:68
&gt; +        })
&gt; +        .then(function() {

Same line?

&gt; Source/WebInspectorUI/UserInterface/Controllers/ReplayManager.js:69
&gt; +            return ReplayAgent.getAvailableSessions.promise();

No .promise().

&gt; Source/WebInspectorUI/UserInterface/Controllers/ReplayManager.js:210
&gt; +        if (!this._initialized)
&gt; +            return this.waitUntilInitialized().then(this.captureStarted.bind(this));

Very cool! Too bad this can&apos;t be more automagic of all of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026951</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-05 14:57:13 -0700</bug_when>
    <thetext>Committed r172087: &lt;http://trac.webkit.org/changeset/172087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026952</commentid>
    <comment_count>6</comment_count>
      <attachid>235384</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-05 14:59:02 -0700</bug_when>
    <thetext>Comment on attachment 235384
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/ReplayManager.js:55
&gt;&gt; +    this._initializationPromise = ReplayAgent.currentReplayState.promise()
&gt; 
&gt; No need for .promise() now.

That&apos;s not landed yet.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/ReplayManager.js:210
&gt;&gt; +            return this.waitUntilInitialized().then(this.captureStarted.bind(this));
&gt; 
&gt; Very cool! Too bad this can&apos;t be more automagic of all of these.

It would require some sort of property proxying thing, which will be just as slow and a bunch of work.. :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235384</attachid>
            <date>2014-07-23 15:06:36 -0700</date>
            <delta_ts>2014-08-05 14:59:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135212-20140723150622.patch</filename>
            <type>text/plain</type>
            <size>21942</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI5MjcwNTgxNTZmOTI4
ODQyZjdlY2FiMmRiYTE5NTJiOTBiMWQwOS4uOTUyZmMzZTc5NjljYmMwMTc0M2Q4NzA4ZGU5M2I4
ZWYxYzNkNmUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA3LTIzICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZXBsYXlNYW5hZ2VyIHNob3VsZG4ndCBhc3N1bWUgcmVwbGF5IHN0YXR1cyB3aGVuIHRo
ZSBpbnNwZWN0b3IgaXMgb3BlbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzUyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgZnJvbnRlbmQgc2hvdWxkIGJlIGFibGUgdG8gaW50cm9zcGVjdCB0
aGUgc2Vzc2lvbiBhbmQgc2VnbWVudCBzdGF0ZSBtYWNoaW5lcywKKyAgICAgICAgY3VycmVudGx5
IGxvYWRlZCBzZWdtZW50IGFuZCBzZXNzaW9uIGlkZW50aWZpZXJzLCBhbmQgcmVwbGF5IHBvc2l0
aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2Vzc2lvblN0YXRlKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvclNlZ21lbnRTdGF0
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmN1cnJl
bnRSZXBsYXlTdGF0ZSk6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXBs
YXlBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9SZXBsYXkuanNvbjogQWRk
IGN1cnJlbnRSZXBsYXlTdGF0ZSBxdWVyeSBjb21tYW5kLgorICAgICAgICAqIHJlcGxheS9SZXBs
YXlDb250cm9sbGVyLmg6IEFkZCBzb21lIGFjY2Vzc29ycy4KKwogMjAxNC0wNy0yMiAgQnJpYW4g
Si4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAKICAgICAgICAgV2ViIFJlcGxheTog
UmVuYW1lIHByb3RvY29sIG1ldGhvZHMgZm9yIG9idGFpbmluZyBzZXNzaW9uL3NlZ21lbnQgZGF0
YS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDVmNTg1ZmNlNDFmYzhkZTU3MWFlZDgyNThj
MTYzMWMxYjFkN2MyMGEuLjBmNGU4ODA1NTVkZWFmNjgzYTVhMmIyNGM0MzY3OTM3NzExZjM3OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE0LTA3LTIzICBC
cmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBSZXBsYXlNYW5hZ2VyIHNob3VsZG4ndCBhc3N1bWUgcmVwbGF5IHN0YXR1cyB3aGVu
IHRoZSBpbnNwZWN0b3IgaXMgb3BlbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzUyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgaW5zcGVjdG9yIGNvdWxkIGJlIGNsb3NlZCBhbmQgcmVvcGVu
ZWQgYXQgYW55IHBvaW50IGR1cmluZyBjYXB0dXJpbmcgb3IgcmVwbGF5aW5nLgorICAgICAgICBS
ZXBsYXlNYW5hZ2VyIHNob3VsZCBxdWVyeSB0aGUgY3VycmVudCBzdGF0ZSBvbiBpbml0aWFsaXph
dGlvbiByYXRoZXIgdGhhbiBhc3N1bWluZworICAgICAgICB0aGF0IHRoZSByZXBsYXkgY29udHJv
bGxlciBpcyBzdGlsbCBpbiBpdHMgaW5pdGlhbCBzdGF0ZS4KKworICAgICAgICBSZXBsYXlNYW5h
Z2VyJ3MgaW5pdGlhbGl6YXRpb24gY29kZSByZXF1aXJlcyBxdWVyeWluZyB0aGUgYmFja2VuZCBm
b3IgdGhlIGN1cnJlbnQgcmVwbGF5CisgICAgICAgIHN0YXRlLiBUaGlzIGNvdWxkIHJhY2Ugd2l0
aCByZXBsYXkgcHJvdG9jb2wgZXZlbnRzIHRoYXQgbXV0YXRlIHRoZSBtYW5hZ2VyJ3Mgc3RhdGUg
YmVmb3JlCisgICAgICAgIGl0IGlzIGZ1bGx5IGluaXRpYWxpemVkLCBsZWFkaW5nIHRvIHVuZGVm
aW5lZCBiZWhhdmlvci4KKworICAgICAgICBUbyBtaXRpZ2F0ZSB0aGlzLCBhbGwgcHJvdG9jb2wg
ZXZlbnQgaGFuZGxlcnMgKGNhbGxlZCBieSBSZXBsYXlPYnNlcnZlcikgYXJlIHdyYXBwZWQKKyAg
ICAgICAgd2l0aCBhIGd1YXJkIHRoYXQgZW5xdWV1ZXMgdGhlIGNhbGxiYWNrIGlmIGluaXRpYWxp
emF0aW9uIGlzIG5vdCB5ZXQgY29tcGxldGUuIFRoaXMKKyAgICAgICAgcXVldWUgaXMgaW1wbGVt
ZW50ZWQgdmlhIG11bHRpcGxlIHRoZW4tY2hhaW5pbmcgb2YgYSBzaGFyZWQgJ2luaXRpYWxpemF0
aW9uJyBwcm9taXNlCisgICAgICAgIHdoaWNoIHJlc29sdmVzIHdoZW4gaW5pdGlhbGl6YXRpb24g
Y29tcGxldGVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9SZXBsYXlN
YW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIudGhlbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5jYXRjaCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVwbGF5TWFuYWdlcik6IFJld3JpdGUgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUg
dG8gZmlyc3QgcXVlcnkgdGhlIHJlcGxheQorICAgICAgICBzdGF0ZSwgc2V0IHRoZSBpbml0aWFs
aXphdGlvbiBmbGFnIHRvIHRydWUsIGFuZCB0aGVuIHJlcXVlc3QgYW5kIHVwZGF0ZSBzZXNzaW9u
IHJlY29yZHMuCisgICAgICAgIFRoZSBzZXNzaW9ucyBtdXN0IGJlIGxvYWRlZCBhZnRlciBxdWVy
eWluZyBpbml0aWFsIHN0YXRlIGJlY2F1c2UgUmVwbGF5TWFuYWdlci5zZXNzaW9uQ3JlYXRlZAor
ICAgICAgICByZXF1aXJlcyByZXBsYXkgc3RhdGUgdG8gYmUgaW5pdGlhbGl6ZWQuCisKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5nZXQgc2Vzc2lvblN0YXRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5nZXQgc2Vn
bWVudFN0YXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlw
ZS5nZXQgYWN0aXZlU2Vzc2lvbklkZW50aWZpZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
cGxheU1hbmFnZXIucHJvdG90eXBlLmdldCBhY3RpdmVTZWdtZW50SWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5wcm90b3R5cGUuZ2V0IHBsYXliYWNrU3Bl
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90eXBlLnNldCBw
bGF5YmFja1NwZWVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3Rv
dHlwZS5nZXQgY3VycmVudFBvc2l0aW9uKTogQWRkIGFzc2VydGlvbnMgdG8gY2F0Y2ggdXNlcyBv
ZgorICAgICAgICBtYW5hZ2VyIHN0YXRlIGJlZm9yZSB0aGUgbWFuYWdlciBpcyBmdWxseSBpbml0
aWFsaXplZC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90eXBl
LndhaXRVbnRpbEluaXRpYWxpemVkKTogQWRkZWQuIEl0IHJldHVybnMgYSBzaGFyZWQgcHJvbWlz
ZQorICAgICAgICB0aGF0IGlzIGZ1bGZpbGxlZCB3aGVuIGluaXRpYWxpemF0aW9uIGlzIGNvbXBs
ZXRlLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5wcm90b3R5cGUuY2Fw
dHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90
eXBlLmNhcHR1cmVTdG9wcGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2Vy
LnByb3RvdHlwZS5wbGF5YmFja1N0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxh
eU1hbmFnZXIucHJvdG90eXBlLnBsYXliYWNrSGl0UG9zaXRpb24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90eXBlLnBsYXliYWNrUGF1c2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5wbGF5YmFja0ZpbmlzaGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5zZXNzaW9uTW9k
aWZpZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90eXBlLnNl
c3Npb25Mb2FkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90
eXBlLnNlZ21lbnRDb21wbGV0ZWQuc2V0IGNhdGNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5zZWdtZW50Q29tcGxldGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5zZWdtZW50UmVtb3ZlZC50aGVuKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZS5zZWdtZW50UmVtb3Zl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5wcm90b3R5cGUuc2VnbWVu
dExvYWRlZCk6IEFkZCBpbml0aWFsaXphdGlvbiBndWFyZHMuCisKKzIwMTQtMDctMjMgIEJyaWFu
IEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgorCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEluc3BlY3RvckJhY2tlbmQncyBwcm9taXNlLWJhc2VkIGFnZW50IEFQSSBkb2VzIG5vdCBz
dXBwb3J0IG11bHRpcGxlIHJldHVybiB2YWx1ZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTIwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcAppbmRleCAzZDU0ZjZjMzlhMjdmYWE4MDI4
ZmVmNDU0OGM3ZDdjMWZlM2VjYTgzLi42ZGY1ZjRiZjM4MjkwY2IzNDk2NDQyNDMyYWVmZDBmYTBh
MmQ3OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBs
YXlBZ2VudC5jcHAKQEAgLTkzLDYgKzkzLDI1IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWls
ZGVyOjpSZXBsYXk6OlJlcGxheVNlc3Npb24+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yU2VzCiAg
ICAgcmV0dXJuIHNlc3Npb25PYmplY3QucmVsZWFzZSgpOwogfQogCitzdGF0aWMgSW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6UmVwbGF5OjpTZXNzaW9uU3RhdGU6OkVudW0gYnVpbGRJbnNwZWN0b3JP
YmplY3RGb3JTZXNzaW9uU3RhdGUoU2Vzc2lvblN0YXRlIHNlc3Npb25TdGF0ZSkKK3sKKyAgICBz
d2l0Y2ggKHNlc3Npb25TdGF0ZSkgeworICAgIGNhc2UgU2Vzc2lvblN0YXRlOjpDYXB0dXJpbmc6
IHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSZXBsYXk6OlNlc3Npb25TdGF0ZTo6Q2Fw
dHVyaW5nOworICAgIGNhc2UgU2Vzc2lvblN0YXRlOjpJbmFjdGl2ZTogcmV0dXJuIEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6OlJlcGxheTo6U2Vzc2lvblN0YXRlOjpJbmFjdGl2ZTsKKyAgICBjYXNl
IFNlc3Npb25TdGF0ZTo6UmVwbGF5aW5nOiByZXR1cm4gSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
UmVwbGF5OjpTZXNzaW9uU3RhdGU6OlJlcGxheWluZzsKKyAgICB9Cit9CisKK3N0YXRpYyBJbnNw
ZWN0b3I6OlR5cGVCdWlsZGVyOjpSZXBsYXk6OlNlZ21lbnRTdGF0ZTo6RW51bSBidWlsZEluc3Bl
Y3Rvck9iamVjdEZvclNlZ21lbnRTdGF0ZShTZWdtZW50U3RhdGUgc2VnbWVudFN0YXRlKQorewor
ICAgIHN3aXRjaCAoc2VnbWVudFN0YXRlKSB7CisgICAgY2FzZSBTZWdtZW50U3RhdGU6OkFwcGVu
ZGluZzogcmV0dXJuIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJlcGxheTo6U2VnbWVudFN0YXRl
OjpBcHBlbmRpbmc7CisgICAgY2FzZSBTZWdtZW50U3RhdGU6OlVubG9hZGVkOiByZXR1cm4gSW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6UmVwbGF5OjpTZWdtZW50U3RhdGU6OlVubG9hZGVkOworICAg
IGNhc2UgU2VnbWVudFN0YXRlOjpMb2FkZWQ6IHJldHVybiBJbnNwZWN0b3I6OlR5cGVCdWlsZGVy
OjpSZXBsYXk6OlNlZ21lbnRTdGF0ZTo6TG9hZGVkOworICAgIGNhc2UgU2VnbWVudFN0YXRlOjpE
aXNwYXRjaGluZzogcmV0dXJuIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJlcGxheTo6U2VnbWVu
dFN0YXRlOjpEaXNwYXRjaGluZzsKKyAgICB9Cit9CisKIGNsYXNzIFNlcmlhbGl6ZUlucHV0VG9K
U09ORnVuY3RvciB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBQYXNzUmVmUHRyPFR5cGVCdWlsZGVy
OjpBcnJheTxUeXBlQnVpbGRlcjo6UmVwbGF5OjpSZXBsYXlJbnB1dD4+IFJldHVyblR5cGU7CkBA
IC00NjQsNiArNDgzLDE4IEBAIFBhc3NSZWZQdHI8UmVwbGF5U2Vzc2lvblNlZ21lbnQ+IEluc3Bl
Y3RvclJlcGxheUFnZW50OjpmaW5kU2VnbWVudChFcnJvclN0cmluZyoKICAgICByZXR1cm4gaXQt
PnZhbHVlOwogfQogCit2b2lkIEluc3BlY3RvclJlcGxheUFnZW50OjpjdXJyZW50UmVwbGF5U3Rh
dGUoRXJyb3JTdHJpbmcqLCBTZXNzaW9uSWRlbnRpZmllciogc2Vzc2lvbklkZW50aWZpZXIsIElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxpbnQ+KiBzZWdtZW50SWRlbnRpZmllciwg
SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UmVwbGF5OjpTZXNzaW9uU3RhdGU6OkVudW0qIHNlc3Np
b25TdGF0ZSwgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UmVwbGF5OjpTZWdtZW50U3RhdGU6OkVu
dW0qIHNlZ21lbnRTdGF0ZSwgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJlcGxheTo6
UmVwbGF5UG9zaXRpb24+JiByZXBsYXlQb3NpdGlvbikKK3sKKyAgICAqc2Vzc2lvblN0YXRlID0g
YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JTZXNzaW9uU3RhdGUobV9wYWdlLnJlcGxheUNvbnRyb2xs
ZXIoKS5zZXNzaW9uU3RhdGUoKSk7CisgICAgKnNlZ21lbnRTdGF0ZSA9IGJ1aWxkSW5zcGVjdG9y
T2JqZWN0Rm9yU2VnbWVudFN0YXRlKG1fcGFnZS5yZXBsYXlDb250cm9sbGVyKCkuc2VnbWVudFN0
YXRlKCkpOworCisgICAgKnNlc3Npb25JZGVudGlmaWVyID0gbV9wYWdlLnJlcGxheUNvbnRyb2xs
ZXIoKS5sb2FkZWRTZXNzaW9uKCktPmlkZW50aWZpZXIoKTsKKyAgICBpZiAobV9wYWdlLnJlcGxh
eUNvbnRyb2xsZXIoKS5sb2FkZWRTZWdtZW50KCkpCisgICAgICAgICpzZWdtZW50SWRlbnRpZmll
ciA9IG1fcGFnZS5yZXBsYXlDb250cm9sbGVyKCkubG9hZGVkU2VnbWVudCgpLT5pZGVudGlmaWVy
KCk7CisKKyAgICByZXBsYXlQb3NpdGlvbiA9IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yUG9zaXRp
b24obV9wYWdlLnJlcGxheUNvbnRyb2xsZXIoKS5jdXJyZW50UG9zaXRpb24oKSk7Cit9CisKIHZv
aWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmdldEF2YWlsYWJsZVNlc3Npb25zKEVycm9yU3RyaW5n
KiwgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5PFNlc3Npb25JZGVudGlmaWVy
Pj4mIHNlc3Npb25zTGlzdCkKIHsKICAgICBzZXNzaW9uc0xpc3QgPSBUeXBlQnVpbGRlcjo6QXJy
YXk8U2Vzc2lvbklkZW50aWZpZXI+OjpjcmVhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmgKaW5kZXggNjEwYjRhOTVmMzA5NzgwOTVmY2Qw
ZWUzNWE2NmI3NGMxZmZjMTY5NS4uZTNiNjkwNWQyZDUyN2MyYTJkNDk2YjNiYzAyYjQ5NWUwMzU2
NTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxh
eUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFn
ZW50LmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dFNlc3Npb25TZWdtZW50KEVycm9yU3RyaW5nKiwgU2Vzc2lvbklkZW50aWZpZXIsIFNlZ21lbnRJ
ZGVudGlmaWVyLCBpbnQgc2VnbWVudEluZGV4KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlU2Vzc2lvblNlZ21lbnQoRXJyb3JTdHJpbmcqLCBTZXNzaW9uSWRlbnRpZmllciwgaW50
IHNlZ21lbnRJbmRleCkgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3VycmVudFJlcGxh
eVN0YXRlKEVycm9yU3RyaW5nKiwgU2Vzc2lvbklkZW50aWZpZXIqLCBJbnNwZWN0b3I6OlR5cGVC
dWlsZGVyOjpPcHRPdXRwdXQ8aW50Piogc2VnbWVudElkZW50aWZpZXIsIEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6OlJlcGxheTo6U2Vzc2lvblN0YXRlOjpFbnVtKiBzZXNzaW9uU3RhdGUsIEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6OlJlcGxheTo6U2VnbWVudFN0YXRlOjpFbnVtKiBzZWdtZW50U3Rh
dGUsIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSZXBsYXk6OlJlcGxheVBvc2l0aW9u
PiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBnZXRBdmFpbGFibGVTZXNzaW9ucyhFcnJv
clN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxTZXNzaW9uSWRl
bnRpZmllcj4+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGdldFNlc3Npb25EYXRhKEVy
cm9yU3RyaW5nKiwgU2Vzc2lvbklkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWls
ZGVyOjpSZXBsYXk6OlJlcGxheVNlc3Npb24+Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGdldFNlZ21lbnREYXRhKEVycm9yU3RyaW5nKiwgU2VnbWVudElkZW50aWZpZXIsIFJlZlB0cjxJ
bnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSZXBsYXk6OlNlc3Npb25TZWdtZW50PiYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1JlcGxheS5q
c29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1JlcGxheS5qc29uCmluZGV4
IDk5Y2VlMzhmMTI5NDllZjkwZmJlZDZlNmE3ZWJlMjA2NjNhZGE3ZWUuLmIxYTRkMGQxZWUwNGQ2
YWM0YTY5ZTBiNzc2ZWE4YjljNWFkMmU4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9SZXBsYXkuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvUmVwbGF5Lmpzb24KQEAgLTExLDYgKzExLDE2IEBACiAgICAgICAgICAgICAi
dHlwZSI6ICJpbnRlZ2VyIgogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAgICAiaWQi
OiAiU2Vzc2lvblN0YXRlIiwgImRlc2NyaXB0aW9uIjogIlN0YXRlIG1hY2hpbmUncyBzdGF0ZSBm
b3IgdGhlIHNlc3Npb24uIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAg
ICAgICAiZW51bSI6IFsiQ2FwdHVyaW5nIiwgIkluYWN0aXZlIiwgIlJlcGxheWluZyJdCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJTZWdtZW50U3RhdGUiLCAiZGVz
Y3JpcHRpb24iOiAiU3RhdGUgbWFjaGluZSdzIHN0YXRlIGZvciB0aGUgc2Vzc2lvbiBzZWdtZW50
LiIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImVudW0iOiBb
IkFwcGVuZGluZyIsICJVbmxvYWRlZCIsICJMb2FkZWQiLCAiRGlzcGF0Y2hpbmciXQorICAgICAg
ICB9LAorICAgICAgICB7CiAgICAgICAgICAgICAiaWQiOiAiUmVwbGF5UG9zaXRpb24iLAogICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwpA
QCAtMTEyLDYgKzEyMiwxNyBAQAogICAgICAgICAgICAgXQogICAgICAgICB9LAogICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJjdXJyZW50UmVwbGF5U3RhdGUiLAorICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGlkZW50aWZpZXIsIHBvc2l0aW9uLCBzZXNzaW9u
IHN0YXRlIGFuZCBzZWdtZW50IHN0YXRlIG9mIHRoZSBjdXJyZW50bHkgbG9hZGVkIHNlc3Npb24u
IFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGluc3BlY3RvciBtYXkgYmUgY2xvc2VkIGFu
ZCByZW9wZW5lZCBpbiB0aGUgbWlkZGxlIG9mIHJlcGxheS4iLAorICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzZXNzaW9uSWRlbnRpZmllciIsICIk
cmVmIjogIlNlc3Npb25JZGVudGlmaWVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c2VnbWVudElkZW50aWZpZXIiLCAiJHJlZiI6ICJTZWdtZW50SWRlbnRpZmllciIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiBubyBzZWdtZW50IGlzIGN1cnJlbnRseSBsb2Fk
ZWQsIHRoZW4gdGhlcmUgaXMgbm8gdmFsaWQgc2VnbWVudCBpZGVudGlmaWVyLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInNlc3Npb25TdGF0ZSIsICIkcmVmIjogIlNlc3Npb25TdGF0
ZSIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlZ21lbnRTdGF0ZSIsICIkcmVmIjog
IlNlZ21lbnRTdGF0ZSIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlcGxheVBvc2l0
aW9uIiwgIiRyZWYiOiAiUmVwbGF5UG9zaXRpb24iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKyAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAiZ2V0QXZhaWxhYmxlU2Vzc2lvbnMi
LAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWRlbnRpZmllcnMgb2YgYWxs
IGF2YWlsYWJsZSBzZXNzaW9ucy4iLAogICAgICAgICAgICAgInJldHVybnMiOiBbCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvcmVwbGF5L1JlcGxheUNvbnRyb2xsZXIuaAppbmRleCA0ZWRiMjI1MzE4NTc3OGUzYTJk
ZjBlZWUzYzA4NDhlNTU3N2YzODY4Li40NzhkYWIyYzMyODU3MmNkZTFhZjJlNGMwY2Y0MDNiM2Yz
YzMyOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlDb250cm9sbGVyLmgKQEAgLTEz
NiwxMCArMTM2LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50KGNvbnN0
IEV2ZW50JiwgRnJhbWUqKTsKIAogICAgIFBhZ2UmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2U7IH0KKwogICAgIFNlc3Npb25TdGF0ZSBzZXNzaW9uU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3Nlc3Npb25TdGF0ZTsgfQorICAgIFNlZ21lbnRTdGF0ZSBzZWdtZW50U3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3NlZ21lbnRTdGF0ZTsgfQorCiAgICAgUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9u
PiBsb2FkZWRTZXNzaW9uKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxSZXBsYXlTZXNzaW9uU2Vn
bWVudD4gbG9hZGVkU2VnbWVudCgpIGNvbnN0OworCiAgICAgSlNDOjpJbnB1dEN1cnNvciYgYWN0
aXZlSW5wdXRDdXJzb3IoKSBjb25zdDsKKyAgICBSZXBsYXlQb3NpdGlvbiBjdXJyZW50UG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRQb3NpdGlvbjsgfQogCiBwcml2YXRlOgogICAg
IC8vIEV2ZW50TG9vcElucHV0RGlzcGF0Y2hlckNsaWVudCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1JlcGxheU1hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9SZXBs
YXlNYW5hZ2VyLmpzCmluZGV4IGU1ODU3ZDg2MjQwYjAxMzYyNDgyODU1ODRiYmQxZTZlYWIyM2Nh
ZWYuLmIzM2E5ZDMzNzNhMmI2MWVhNTgzNDgxZjdiOThiNWYyOGYwOGM3ODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1JlcGxheU1h
bmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvUmVwbGF5TWFuYWdlci5qcwpAQCAtMzQsNiArMzQsNyBAQCBXZWJJbnNwZWN0b3IuUmVw
bGF5TWFuYWdlciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9hY3RpdmVTZXNzaW9uSWRlbnRpZmll
ciA9IG51bGw7CiAgICAgdGhpcy5fYWN0aXZlU2VnbWVudElkZW50aWZpZXIgPSBudWxsOwogICAg
IHRoaXMuX2N1cnJlbnRQb3NpdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuUmVwbGF5UG9zaXRpb24o
MCwgMCk7CisgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSBmYWxzZTsKIAogICAgIC8vIFRoZXNlIGhv
bGQgYWN0dWFsIGluc3RhbmNlcyBvZiBzZXNzaW9ucyBhbmQgc2VnbWVudHMuCiAgICAgdGhpcy5f
c2Vzc2lvbnMgPSBuZXcgTWFwOwpAQCAtNDksMTAgKzUwLDMwIEBAIFdlYkluc3BlY3Rvci5SZXBs
YXlNYW5hZ2VyID0gZnVuY3Rpb24oKQogICAgIGlmICghd2luZG93LlJlcGxheUFnZW50KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBSZXBsYXlBZ2VudC5nZXRBdmFpbGFibGVTZXNzaW9ucy5wcm9t
aXNlKCkKKyAgICB2YXIgaW5zdGFuY2UgPSB0aGlzOworCisgICAgdGhpcy5faW5pdGlhbGl6YXRp
b25Qcm9taXNlID0gUmVwbGF5QWdlbnQuY3VycmVudFJlcGxheVN0YXRlLnByb21pc2UoKQorICAg
ICAgICAudGhlbihmdW5jdGlvbihwYXlsb2FkKSB7CisgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChwYXlsb2FkLnNlc3Npb25TdGF0ZSBpbiBXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZXNz
aW9uU3RhdGUsICJVbmtub3duIHNlc3Npb24gc3RhdGU6ICIgKyBwYXlsb2FkLnNlc3Npb25TdGF0
ZSk7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChwYXlsb2FkLnNlZ21lbnRTdGF0ZSBpbiBX
ZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZWdtZW50U3RhdGUsICJVbmtub3duIHNlZ21lbnQg
c3RhdGU6ICIgKyBwYXlsb2FkLnNlZ21lbnRTdGF0ZSk7CisKKyAgICAgICAgICAgIGluc3RhbmNl
Ll9hY3RpdmVTZXNzaW9uSWRlbnRpZmllciA9IHBheWxvYWQuc2Vzc2lvbklkZW50aWZpZXI7Cisg
ICAgICAgICAgICBpbnN0YW5jZS5fYWN0aXZlU2VnbWVudElkZW50aWZpZXIgPSBwYXlsb2FkLnNl
Z21lbnRJZGVudGlmaWVyOworICAgICAgICAgICAgaW5zdGFuY2UuX3Nlc3Npb25TdGF0ZSA9IFdl
Ykluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLlNlc3Npb25TdGF0ZVtwYXlsb2FkLnNlc3Npb25TdGF0
ZV07CisgICAgICAgICAgICBpbnN0YW5jZS5fc2VnbWVudFN0YXRlID0gV2ViSW5zcGVjdG9yLlJl
cGxheU1hbmFnZXIuU2VnbWVudFN0YXRlW3BheWxvYWQuc2VnbWVudFN0YXRlXTsKKyAgICAgICAg
ICAgIGluc3RhbmNlLl9jdXJyZW50UG9zaXRpb24gPSBwYXlsb2FkLnJlcGxheVBvc2l0aW9uOwor
CisgICAgICAgICAgICBpbnN0YW5jZS5faW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICB9KQor
ICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBSZXBsYXlBZ2Vu
dC5nZXRBdmFpbGFibGVTZXNzaW9ucy5wcm9taXNlKCk7CisgICAgICAgIH0pCiAgICAgICAgIC50
aGVuKGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgICAgICAgIGZvciAodmFyIHNlc3Npb25JZCBv
ZiBwYXlsb2FkLmlkcykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVwbGF5TWFuYWdl
ci5zZXNzaW9uQ3JlYXRlZChzZXNzaW9uSWQpOworICAgICAgICAgICAgICAgIGluc3RhbmNlLnNl
c3Npb25DcmVhdGVkKHNlc3Npb25JZCk7CisgICAgICAgIH0pCisgICAgICAgIC5jYXRjaChmdW5j
dGlvbihlcnIpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlJlcGxheU1hbmFnZXIgaW5p
dGlhbGl6YXRpb24gZmFpbGVkOiAiLCBlcnIpOwogICAgICAgICB9KTsKIH07CiAKQEAgLTk5LDQy
ICsxMjAsNTYgQEAgV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90eXBlID0gewogCiAg
ICAgLy8gUHVibGljCiAKKyAgICAvLyBUaGUgZm9sbG93aW5nIHN0YXRlIGlzIGludmFsaWQgdW5s
ZXNzIGNhbGxlZCBmcm9tIGEgZnVuY3Rpb24gdGhhdCdzIGNoYWluZWQKKyAgICAvLyB0byB0aGUg
KHJlc29sdmVkKSBSZXBsYXlNYW5hZ2VyLndhaXRVbnRpbEluaXRpYWxpemVkIHByb21pc2UuCiAg
ICAgZ2V0IHNlc3Npb25TdGF0ZSgpCiAgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlz
Ll9pbml0aWFsaXplZCk7CiAgICAgICAgIHJldHVybiB0aGlzLl9zZXNzaW9uU3RhdGU7CiAgICAg
fSwKIAogICAgIGdldCBzZWdtZW50U3RhdGUoKQogICAgIHsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQodGhpcy5faW5pdGlhbGl6ZWQpOwogICAgICAgICByZXR1cm4gdGhpcy5fc2VnbWVudFN0YXRl
OwogICAgIH0sCiAKICAgICBnZXQgYWN0aXZlU2Vzc2lvbklkZW50aWZpZXIoKQogICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5faW5pdGlhbGl6ZWQpOwogICAgICAgICByZXR1cm4g
dGhpcy5fYWN0aXZlU2Vzc2lvbklkZW50aWZpZXI7CiAgICAgfSwKIAogICAgIGdldCBhY3RpdmVT
ZWdtZW50SWRlbnRpZmllcigpCiAgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9p
bml0aWFsaXplZCk7CiAgICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVTZWdtZW50SWRlbnRpZmll
cjsKICAgICB9LAogCiAgICAgZ2V0IHBsYXliYWNrU3BlZWQoKQogICAgIHsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5faW5pdGlhbGl6ZWQpOwogICAgICAgICByZXR1cm4gdGhpcy5fcGxh
eWJhY2tTcGVlZDsKICAgICB9LAogCiAgICAgc2V0IHBsYXliYWNrU3BlZWQodmFsdWUpCiAgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9pbml0aWFsaXplZCk7CiAgICAgICAgIHRo
aXMuX3BsYXliYWNrU3BlZWQgPSB2YWx1ZTsKICAgICB9LAogCiAgICAgZ2V0IGN1cnJlbnRQb3Np
dGlvbigpCiAgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9pbml0aWFsaXplZCk7
CiAgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50UG9zaXRpb247CiAgICAgfSwKIAogICAgIC8v
IFRoZXNlIHJldHVybiBwcm9taXNlcyBldmVuIGlmIHRoZSByZWxldmFudCBpbnN0YW5jZSBpcyBh
bHJlYWR5IGNyZWF0ZWQuCisgICAgd2FpdFVudGlsSW5pdGlhbGl6ZWQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2U7CisgICAgfSwK
KwogICAgIGdldFNlc3Npb246IGZ1bmN0aW9uKHNlc3Npb25JZCkKICAgICB7CiAgICAgICAgIGlm
ICh0aGlzLl9zZXNzaW9uUHJvbWlzZXMuaGFzKHNlc3Npb25JZCkpCkBAIC0xNjUsOCArMjAwLDE1
IEBAIFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIC8vIFBy
b3RlY3RlZCAoY2FsbGVkIGJ5IFJlcGxheU9ic2VydmVyKQogCisgICAgLy8gU2luY2UgdGhlc2Ug
bWV0aG9kcyB1cGRhdGUgc2Vzc2lvbiBhbmQgc2VnbWVudCBzdGF0ZSwgdGhleSBkZXBlbmQgb24g
dGhlIG1hbmFnZXIKKyAgICAvLyBiZWluZyBwcm9wZXJseSBpbml0aWFsaXplZC4gU28sIGVhY2gg
ZnVuY3Rpb24gYm9keSBpcyBwcmVwZW5kZWQgd2l0aCBhIHJldHJ5IGd1YXJkLgorICAgIC8vIFRo
aXMgbWFrZXMgY2FsbCBzaXRlcyBzaW1wbGVyIGFuZCBhdm9pZHMgYW4gZXh0cmEgZXZlbnQgbG9v
cCB0dXJuIGluIHRoZSBjb21tb24gY2FzZS4KKwogICAgIGNhcHR1cmVTdGFydGVkOiBmdW5jdGlv
bigpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKQorICAgICAgICAgICAg
cmV0dXJuIHRoaXMud2FpdFVudGlsSW5pdGlhbGl6ZWQoKS50aGVuKHRoaXMuY2FwdHVyZVN0YXJ0
ZWQuYmluZCh0aGlzKSk7CisKICAgICAgICAgdGhpcy5fY2hhbmdlU2Vzc2lvblN0YXRlKFdlYklu
c3BlY3Rvci5SZXBsYXlNYW5hZ2VyLlNlc3Npb25TdGF0ZS5DYXB0dXJpbmcpOwogCiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2Vy
LkV2ZW50LkNhcHR1cmVTdGFydGVkKTsKQEAgLTE3NCw2ICsyMTYsOSBAQCBXZWJJbnNwZWN0b3Iu
UmVwbGF5TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICBjYXB0dXJlU3RvcHBlZDogZnVuY3Rp
b24oKQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLndhaXRVbnRpbEluaXRpYWxpemVkKCkudGhlbih0aGlzLmNhcHR1cmVTdG9w
cGVkLmJpbmQodGhpcykpOworCiAgICAgICAgIHRoaXMuX2NoYW5nZVNlc3Npb25TdGF0ZShXZWJJ
bnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZXNzaW9uU3RhdGUuSW5hY3RpdmUpOwogICAgICAgICB0
aGlzLl9jaGFuZ2VTZWdtZW50U3RhdGUoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIuU2VnbWVu
dFN0YXRlLlVubG9hZGVkKTsKIApAQCAtMTgyLDYgKzIyNyw5IEBAIFdlYkluc3BlY3Rvci5SZXBs
YXlNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIHBsYXliYWNrU3RhcnRlZDogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLndhaXRVbnRpbEluaXRpYWxpemVkKCkudGhlbih0aGlzLnBsYXliYWNrU3RhcnRl
ZC5iaW5kKHRoaXMpKTsKKwogICAgICAgICBpZiAodGhpcy5zZXNzaW9uU3RhdGUgPT09IFdlYklu
c3BlY3Rvci5SZXBsYXlNYW5hZ2VyLlNlc3Npb25TdGF0ZS5JbmFjdGl2ZSkKICAgICAgICAgICAg
IHRoaXMuX2NoYW5nZVNlc3Npb25TdGF0ZShXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZXNz
aW9uU3RhdGUuUmVwbGF5aW5nKTsKIApAQCAtMTkyLDYgKzI0MCw5IEBAIFdlYkluc3BlY3Rvci5S
ZXBsYXlNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIHBsYXliYWNrSGl0UG9zaXRpb246IGZ1
bmN0aW9uKHJlcGxheVBvc2l0aW9uLCB0aW1lc3RhbXApCiAgICAgeworICAgICAgICBpZiAoIXRo
aXMuX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FpdFVudGlsSW5pdGlh
bGl6ZWQoKS50aGVuKHRoaXMucGxheWJhY2tIaXRQb3NpdGlvbi5iaW5kKHRoaXMsIHJlcGxheVBv
c2l0aW9uLCB0aW1lc3RhbXApKTsKKwogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLnNlc3Np
b25TdGF0ZSA9PT0gV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIuU2Vzc2lvblN0YXRlLlJlcGxh
eWluZyk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuc2VnbWVudFN0YXRlID09PSBXZWJJ
bnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZWdtZW50U3RhdGUuRGlzcGF0Y2hpbmcpOwogICAgICAg
ICBjb25zb2xlLmFzc2VydChyZXBsYXlQb3NpdGlvbiBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5S
ZXBsYXlQb3NpdGlvbik7CkBAIC0yMDAsOCArMjUxLDExIEBAIFdlYkluc3BlY3Rvci5SZXBsYXlN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIuRXZlbnQuUGxheWJhY2tQb3NpdGlvbkNoYW5n
ZWQpOwogICAgIH0sCiAKLSAgICBwbGF5YmFja1BhdXNlZDogZnVuY3Rpb24obWFyaykKKyAgICBw
bGF5YmFja1BhdXNlZDogZnVuY3Rpb24ocG9zaXRpb24pCiAgICAgeworICAgICAgICBpZiAoIXRo
aXMuX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FpdFVudGlsSW5pdGlh
bGl6ZWQoKS50aGVuKHRoaXMucGxheWJhY2tQYXVzZWQuYmluZCh0aGlzLCBwb3NpdGlvbikpOwor
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuc2Vzc2lvblN0YXRlID09PSBXZWJJbnNwZWN0
b3IuUmVwbGF5TWFuYWdlci5TZXNzaW9uU3RhdGUuUmVwbGF5aW5nKTsKICAgICAgICAgdGhpcy5f
Y2hhbmdlU2VnbWVudFN0YXRlKFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLlNlZ21lbnRTdGF0
ZS5Mb2FkZWQpOwogCkBAIC0yMTAsNiArMjY0LDkgQEAgV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFn
ZXIucHJvdG90eXBlID0gewogCiAgICAgcGxheWJhY2tGaW5pc2hlZDogZnVuY3Rpb24oKQogICAg
IHsKKyAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLndhaXRVbnRpbEluaXRpYWxpemVkKCkudGhlbih0aGlzLnBsYXliYWNrRmluaXNoZWQuYmlu
ZCh0aGlzKSk7CisKICAgICAgICAgdGhpcy5fY2hhbmdlU2Vzc2lvblN0YXRlKFdlYkluc3BlY3Rv
ci5SZXBsYXlNYW5hZ2VyLlNlc3Npb25TdGF0ZS5JbmFjdGl2ZSk7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuc2VnbWVudFN0YXRlID09PSBXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5T
ZWdtZW50U3RhdGUuVW5sb2FkZWQpOwogCkBAIC0yMTgsNiArMjc1LDkgQEAgV2ViSW5zcGVjdG9y
LlJlcGxheU1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgc2Vzc2lvbkNyZWF0ZWQ6IGZ1bmN0
aW9uKHNlc3Npb25JZCkKICAgICB7CisgICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy53YWl0VW50aWxJbml0aWFsaXplZCgpLnRoZW4odGhpcy5z
ZXNzaW9uQ3JlYXRlZC5iaW5kKHRoaXMsIHNlc3Npb25JZCkpOworCiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCF0aGlzLl9zZXNzaW9ucy5oYXMoc2Vzc2lvbklkKSwgIlRyaWVkIHRvIGFkZCBkdXBs
aWNhdGUgc2Vzc2lvbiBpZGVudGlmaWVyOiIsIHNlc3Npb25JZCk7CiAgICAgICAgIHZhciBzZXNz
aW9uTWFwID0gdGhpcy5fc2Vzc2lvbnM7CiAgICAgICAgIHRoaXMuZ2V0U2Vzc2lvbihzZXNzaW9u
SWQpCkBAIC0yMzMsNiArMjkzLDkgQEAgV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90
eXBlID0gewogCiAgICAgc2Vzc2lvbk1vZGlmaWVkOiBmdW5jdGlvbihzZXNzaW9uSWQpCiAgICAg
eworICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuIHRo
aXMud2FpdFVudGlsSW5pdGlhbGl6ZWQoKS50aGVuKHRoaXMuc2Vzc2lvbk1vZGlmaWVkLmJpbmQo
dGhpcywgc2Vzc2lvbklkKSk7CisKICAgICAgICAgdGhpcy5nZXRTZXNzaW9uKHNlc3Npb25JZCku
dGhlbihmdW5jdGlvbihzZXNzaW9uKSB7CiAgICAgICAgICAgICBzZXNzaW9uLnNlZ21lbnRzQ2hh
bmdlZCgpOwogICAgICAgICB9KTsKQEAgLTI0MCw2ICszMDMsOSBAQCBXZWJJbnNwZWN0b3IuUmVw
bGF5TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICBzZXNzaW9uUmVtb3ZlZDogZnVuY3Rpb24o
c2Vzc2lvbklkKQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCkKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLndhaXRVbnRpbEluaXRpYWxpemVkKCkudGhlbih0aGlzLnNlc3Np
b25SZW1vdmVkLmJpbmQodGhpcywgc2Vzc2lvbklkKSk7CisKICAgICAgICAgY29uc29sZS5hc3Nl
cnQodGhpcy5fc2Vzc2lvbnMuaGFzKHNlc3Npb25JZCksICJVbmtub3duIHNlc3Npb24gaWRlbnRp
ZmllcjoiLCBzZXNzaW9uSWQpOwogCiAgICAgICAgIGlmICghdGhpcy5fc2Vzc2lvblByb21pc2Vz
LmhhcyhzZXNzaW9uSWQpKQpAQCAtMjYyLDYgKzMyOCw5IEBAIFdlYkluc3BlY3Rvci5SZXBsYXlN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgIHNlZ21lbnRDcmVhdGVkOiBmdW5jdGlvbihzZWdt
ZW50SWQpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKQorICAgICAgICAg
ICAgcmV0dXJuIHRoaXMud2FpdFVudGlsSW5pdGlhbGl6ZWQoKS50aGVuKHRoaXMuc2VnbWVudENy
ZWF0ZWQuYmluZCh0aGlzLCBzZWdtZW50SWQpKTsKKwogICAgICAgICBjb25zb2xlLmFzc2VydCgh
dGhpcy5fc2VnbWVudHMuaGFzKHNlZ21lbnRJZCksICJUcmllZCB0byBhZGQgZHVwbGljYXRlIHNl
Z21lbnQgaWRlbnRpZmllcjoiLCBzZWdtZW50SWQpOwogCiAgICAgICAgIHRoaXMuX2NoYW5nZVNl
Z21lbnRTdGF0ZShXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5TZWdtZW50U3RhdGUuQXBwZW5k
aW5nKTsKQEAgLTI3Nyw2ICszNDYsOSBAQCBXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5wcm90
b3R5cGUgPSB7CiAKICAgICBzZWdtZW50Q29tcGxldGVkOiBmdW5jdGlvbihzZWdtZW50SWQpCiAg
ICAgeworICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMud2FpdFVudGlsSW5pdGlhbGl6ZWQoKS50aGVuKHRoaXMuc2VnbWVudENvbXBsZXRlZC5i
aW5kKHRoaXMsIHNlZ21lbnRJZCkpOworCiAgICAgICAgIHZhciBwbGFjZWhvbGRlclNlZ21lbnQg
PSB0aGlzLl9zZWdtZW50cy50YWtlKHNlZ21lbnRJZCk7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHBsYWNlaG9sZGVyU2VnbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5JbmNvbXBsZXRlU2Vz
c2lvblNlZ21lbnQpOwogICAgICAgICB0aGlzLl9zZWdtZW50UHJvbWlzZXMuZGVsZXRlKHNlZ21l
bnRJZCk7CkBAIC0yOTMsNiArMzY1LDkgQEAgV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJv
dG90eXBlID0gewogCiAgICAgc2VnbWVudFJlbW92ZWQ6IGZ1bmN0aW9uKHNlZ21lbnRJZCkKICAg
ICB7CisgICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy53YWl0VW50aWxJbml0aWFsaXplZCgpLnRoZW4odGhpcy5zZWdtZW50UmVtb3ZlZC5iaW5k
KHRoaXMsIHNlZ21lbnRJZCkpOworCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3NlZ21l
bnRzLmhhcyhzZWdtZW50SWQpLCAiVW5rbm93biBzZWdtZW50IGlkZW50aWZpZXI6Iiwgc2VnbWVu
dElkKTsKIAogICAgICAgICBpZiAoIXRoaXMuX3NlZ21lbnRQcm9taXNlcy5oYXMoc2VnbWVudElk
KSkKQEAgLTMxNSw2ICszOTAsOSBAQCBXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5wcm90b3R5
cGUgPSB7CiAKICAgICBzZWdtZW50TG9hZGVkOiBmdW5jdGlvbihzZWdtZW50SWQpCiAgICAgewor
ICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMu
d2FpdFVudGlsSW5pdGlhbGl6ZWQoKS50aGVuKHRoaXMuc2VnbWVudExvYWRlZC5iaW5kKHRoaXMs
IHNlZ21lbnRJZCkpOworCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX3NlZ21lbnRzLmhh
cyhzZWdtZW50SWQpLCAiVW5rbm93biBzZWdtZW50IGlkZW50aWZpZXI6Iiwgc2VnbWVudElkKTsK
IAogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLnNlc3Npb25TdGF0ZSAhPT0gV2ViSW5zcGVj
dG9yLlJlcGxheU1hbmFnZXIuU2Vzc2lvblN0YXRlLkNhcHR1cmluZyk7CkBAIC0zMjYsNiArNDA0
LDkgQEAgV2ViSW5zcGVjdG9yLlJlcGxheU1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgc2Vn
bWVudFVubG9hZGVkOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMuX2luaXRp
YWxpemVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FpdFVudGlsSW5pdGlhbGl6ZWQoKS50
aGVuKHRoaXMuc2VnbWVudFVubG9hZGVkLmJpbmQodGhpcykpOworCiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuc2Vzc2lvblN0YXRlID09PSBXZWJJbnNwZWN0b3IuUmVwbGF5TWFuYWdlci5T
ZXNzaW9uU3RhdGUuUmVwbGF5aW5nKTsKICAgICAgICAgdGhpcy5fY2hhbmdlU2VnbWVudFN0YXRl
KFdlYkluc3BlY3Rvci5SZXBsYXlNYW5hZ2VyLlNlZ21lbnRTdGF0ZS5VbmxvYWRlZCk7CiAK
</data>
<flag name="review"
          id="259958"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>