From 0555ff994f5f7542f3f751ec48b201dc407eaad6 Mon Sep 17 00:00:00 2001 From: Spencer Fang Date: Wed, 3 Oct 2018 08:52:37 -0700 Subject: [PATCH] gdebug: rerun angular compiler --- .../static-assets/dist_channelz/main.js | 6 +- .../static-assets/dist_channelz/main.js.map | 2 +- .../static-assets/dist_channelz/polyfills.js | 2 +- .../static-assets/dist_channelz/scripts.js | 96 ++++++++++++++----- .../dist_channelz/scripts.js.map | 2 +- .../static-assets/dist_channelz/styles.js | 2 +- gdebug/web/channelzui/package-lock.json | 28 ++++-- 7 files changed, 100 insertions(+), 38 deletions(-) diff --git a/gdebug/docker/static-assets/dist_channelz/main.js b/gdebug/docker/static-assets/dist_channelz/main.js index ca7facf..8e39b83 100644 --- a/gdebug/docker/static-assets/dist_channelz/main.js +++ b/gdebug/docker/static-assets/dist_channelz/main.js @@ -297,7 +297,7 @@ module.exports = "" /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "

Showing channel:

\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldValue
ChannelRef
{{channel.getRef().getChannelId()}}[{{channel.getRef().getName()}}]
Data
{{channelDataStr}}
Channels\n \n
Subchannels\n \n
Sockets\n \n
Channel trace summary
{{traceSummary}}
Channel trace events\n
No events recorded
\n
\n
{{evt.combinedDetails}}
\n \n \n
\n
\n
\n
\n
\n

Channel does not exist

\n
\n
\n" +module.exports = "

Showing channel:

\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldValue
ChannelRef
{{channel.getRef().getChannelId()}}[{{channel.getRef().getName()}}]
Data
{{channelDataStr}}
Channels\n \n
Subchannels\n \n
Sockets\n \n
Channel trace summary
{{traceSummary}}
Channel trace events\n
No events recorded
\n
\n
{{evt.combinedDetails}}
\n \n \n
\n
\n
\n
\n
\n

Channel does not exist

\n
\n
\n" /***/ }), @@ -989,7 +989,7 @@ module.exports = "" /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "

Showing subchannel:

\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldValue
SubchannelRef
{{subchannel.getRef().getSubchannelId()}}[{{subchannel.getRef().getName()}}]
Data
{{subchannelDataStr}}
Channels\n \n
Subchannels\n \n
Sockets\n \n
Channel trace summary
{{traceSummary}}
Channel trace events\n
No events recorded
\n
\n
{{evt.combinedDetails}}
\n \n \n
\n
\n
\n
\n
\n

Subchannel does not exist

\n
\n
\n" +module.exports = "

Showing subchannel:

\n\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldValue
SubchannelRef
{{subchannel.getRef().getSubchannelId()}}[{{subchannel.getRef().getName()}}]
Data
{{subchannelDataStr}}
Channels\n \n
Subchannels\n \n
Sockets\n \n
Channel trace summary
{{traceSummary}}
Channel trace events\n
No events recorded
\n
\n
{{evt.combinedDetails}}
\n \n \n
\n
\n
\n
\n
\n

Subchannel does not exist

\n
\n
\n" /***/ }), @@ -1476,7 +1476,7 @@ Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformB /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! /usr/local/google/home/spencerfang/git/grpc-experiments/grpc-zpages/web/channelzui/src/main.ts */"./src/main.ts"); +module.exports = __webpack_require__(/*! /home/spencerfang/git/grpc-experiments/gdebug/web/channelzui/src/main.ts */"./src/main.ts"); /***/ }) diff --git a/gdebug/docker/static-assets/dist_channelz/main.js.map b/gdebug/docker/static-assets/dist_channelz/main.js.map index 455a937..75b0bbf 100644 --- a/gdebug/docker/static-assets/dist_channelz/main.js.map +++ b/gdebug/docker/static-assets/dist_channelz/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/channel/channel.component.css","webpack:///./src/app/channel/channel.component.html","webpack:///./src/app/channel/channel.component.ts","webpack:///./src/app/channelz.service.ts","webpack:///./src/app/help/help.component.css","webpack:///./src/app/help/help.component.html","webpack:///./src/app/help/help.component.ts","webpack:///./src/app/server-sockets/server-sockets.component.css","webpack:///./src/app/server-sockets/server-sockets.component.html","webpack:///./src/app/server-sockets/server-sockets.component.ts","webpack:///./src/app/servers/servers.component.css","webpack:///./src/app/servers/servers.component.html","webpack:///./src/app/servers/servers.component.ts","webpack:///./src/app/socket/socket.component.css","webpack:///./src/app/socket/socket.component.html","webpack:///./src/app/socket/socket.component.ts","webpack:///./src/app/subchannel/subchannel.component.css","webpack:///./src/app/subchannel/subchannel.component.html","webpack:///./src/app/subchannel/subchannel.component.ts","webpack:///./src/app/top-channels/top-channels.component.css","webpack:///./src/app/top-channels/top-channels.component.html","webpack:///./src/app/top-channels/top-channels.component.ts","webpack:///./src/app/utils.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error('Cannot find module \"' + req + '\".');\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ServersComponent } from './servers/servers.component';\nimport { SocketComponent } from './socket/socket.component';\nimport { TopChannelsComponent } from './top-channels/top-channels.component';\nimport { SubchannelComponent } from './subchannel/subchannel.component';\nimport { ChannelComponent } from './channel/channel.component';\nimport { ServerSocketsComponent } from './server-sockets/server-sockets.component';\nimport { HelpComponent } from './help/help.component';\n\nconst routes: Routes = [\n { path: 'channelz/servers/:startId', component: ServersComponent },\n { path: 'channelz/servers', component: ServersComponent },\n { path: 'channelz/servers/:startId', component: ServersComponent },\n { path: 'channelz/servers', component: ServersComponent },\n { path: 'channelz/topchannels/:startId', component: TopChannelsComponent },\n { path: 'channelz/topchannels', component: TopChannelsComponent },\n { path: 'channelz/socket/:id', component: SocketComponent},\n { path: 'channelz/socket', component: SocketComponent},\n { path: 'channelz/channel/:id', component: ChannelComponent },\n { path: 'channelz/channel', component: ChannelComponent },\n { path: 'channelz/subchannel/:id', component: SubchannelComponent },\n { path: 'channelz/subchannel', component: SubchannelComponent },\n { path: 'channelz/serversockets/:serverId/:socketStartId', component: ServerSocketsComponent },\n { path: 'channelz/serversockets/:serverId', component: ServerSocketsComponent },\n { path: 'channelz/serversockets', component: ServerSocketsComponent },\n { path: 'channelz/help', component: HelpComponent },\n { path: 'channelz', redirectTo: '/', pathMatch: 'full' },\n { path: '', redirectTo: '/', pathMatch: 'full' },\n];\n\n@NgModule({\n exports: [ RouterModule ],\n imports: [ RouterModule.forRoot(routes) ],\n})\nexport class AppRoutingModule {}\n","module.exports = \"\"","module.exports = \"

Channelz

\\n\\n\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Channelz';\n}\n","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from './app-routing.module';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { ServersComponent } from './servers/servers.component';\nimport { SocketComponent } from './socket/socket.component';\n\nimport { ChannelComponent } from './channel/channel.component';\nimport { ChannelzService } from './channelz.service';\nimport { HelpComponent } from './help/help.component';\nimport { AddrToString, DateFromProto } from './utils';\nimport { ServerSocketsComponent } from './server-sockets/server-sockets.component';\nimport { SubchannelComponent } from './subchannel/subchannel.component';\nimport { TopChannelsComponent } from './top-channels/top-channels.component';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n AddrToString,\n DateFromProto,\n ChannelComponent,\n HelpComponent,\n ServerSocketsComponent,\n ServersComponent,\n SocketComponent,\n SubchannelComponent,\n TopChannelsComponent,\n ],\n imports: [\n AppRoutingModule,\n BrowserModule,\n CommonModule,\n FormsModule,\n ],\n providers: [ChannelzService],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","module.exports = \"\"","module.exports = \"

Showing channel:

\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FieldValue
ChannelRef
{{channel.getRef().getChannelId()}}[{{channel.getRef().getName()}}]
Data
{{channelDataStr}}
Channels\\n \\n
Subchannels\\n \\n
Sockets\\n \\n
Channel trace summary
{{traceSummary}}
Channel trace events\\n
No events recorded
\\n
\\n
{{evt.combinedDetails}}
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n

Channel does not exist

\\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport {\n channelDataHelper, channelTraceSummary,\n TraceEvent,\n traceEventHelper,\n} from '../utils';\n\n@Component({\n selector: 'app-channel',\n templateUrl: './channel.component.html',\n styleUrls: ['./channel.component.css']\n})\nexport class ChannelComponent implements OnInit {\n enteredData: string = \"0\";\n channel: any;\n id: number = 0;\n channelDataStr: string;\n traceSummary: String;\n traceEvents: TraceEvent[] = null;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl('/channelz/channel/' + this.enteredData);\n }\n\n private render(): void {\n const idParam = this.route.snapshot.paramMap.get('id');\n this.id = idParam == null ? 0 : +idParam;\n this.enteredData = this.id.toString();\n this.channelzService.getChannel(this.id)\n .subscribe((response: any) => this.handleResponse(response));\n }\n\n private handleResponse(resp: any): void {\n this.channel = resp.getChannel();\n this.channelDataStr = channelDataHelper(this.channel.getData());\n const channelTrace = this.channel.getData().getTrace();\n if (channelTrace != null && channelTrace.getEventsList() != null) {\n this.traceSummary = channelTraceSummary(channelTrace);\n this.traceEvents = traceEventHelper(channelTrace.getEventsList());\n }\n }\n}\n","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../environments/environment\";\n\n// When building with angular CLI in OSS:\n// The standalone channelz.js file provides a proto symbol with the\n// client and message types. goog.require() is effectively a noop.\n// When building with closure compiler:\n// goog.require() imports the client and message libraries\ndeclare var goog: any;\ngoog.require('proto.grpc.channelz.v1.ChannelzClient');\ngoog.require('proto.grpc.channelz.v1.GetChannelRequest');\ngoog.require('proto.grpc.channelz.v1.GetServerSocketsRequest');\ngoog.require('proto.grpc.channelz.v1.GetServersRequest');\ngoog.require('proto.grpc.channelz.v1.GetSocketRequest');\ngoog.require('proto.grpc.channelz.v1.GetSubchannelRequest');\ngoog.require('proto.grpc.channelz.v1.GetTopChannelsRequest');\ndeclare var proto: any;\n\n@Injectable()\nexport class ChannelzService {\n xsrfMeta: {};\n client: any;\n\n constructor() {\n this.xsrfMeta = ChannelzService.genXsrfMeta();\n this.client = new proto.grpc.channelz.v1.ChannelzClient(\n environment.grpcRemoteAddr);\n }\n\n private static genXsrfMeta(): any {\n const arr = new Int8Array(32); // 256 bits of entropy\n window.crypto.getRandomValues(arr);\n const xsrfVal = btoa(arr.toString());\n document.cookie = `gdebug-xsrf-token=${xsrfVal};path=/`;\n return {\"gdebug-xsrf-token\": xsrfVal};\n }\n\n private functionToObserver(rpcMethod: any, req: any): Observable {\n return new Observable(observer => {\n // To use a method passed around as a parameter, the method must be bound\n // to an instance of the object.\n rpcMethod.bind(this.client)(req, this.xsrfMeta, function(err, response) {\n observer.next(response);\n observer.complete();\n })\n }\n )\n }\n\n getServers(startId: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetServersRequest();\n req.setStartServerId(startId);\n return this.functionToObserver(this.client.getServers, req);\n }\n\n getServerSockets(serverId: number, startId: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetServerSocketsRequest();\n req.setServerId(serverId);\n req.setStartSocketId(startId);\n return this.functionToObserver(this.client.getServerSockets, req);\n }\n\n getTopChannels(startId: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetTopChannelsRequest();\n req.setStartChannelId(startId);\n return this.functionToObserver(this.client.getTopChannels, req);\n }\n\n getSubchannel(id: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetSubchannelRequest();\n req.setSubchannelId(id);\n return this.functionToObserver(this.client.getSubchannel, req);\n }\n\n getChannel(id: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetChannelRequest();\n req.setChannelId(id);\n return this.functionToObserver(this.client.getChannel, req);\n }\n\n getSocket(id: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetSocketRequest();\n req.setSocketId(id);\n return this.functionToObserver(this.client.getSocket, req);\n }\n}\n","module.exports = \"\"","module.exports = \"
\\n

Java notes:

\\n
    \\n
  • InProcessTransport is not a real socket, so in process servers and channels will\\n not provide socket level stats. If you try to load an InProcesTransport, channelz will\\n report that the socket is not found. This is normal. Use the provided channel, subchannel, or\\n server level stats instead.
  • \\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-help',\n templateUrl: './help.component.html',\n styleUrls: ['./help.component.css']\n})\nexport class HelpComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n}\n","module.exports = \"\"","module.exports = \"

Showing server sockets starting from:

\\nServer id:\\n\\nStarting socket:\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n
Sockets
\\n {{s.getSocketId()}}[{{s.getName()}}]\\n
\\n
\\n
\\n Click here for next page\\n
\\n
\\n

End of results

\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\n\n@Component({\n selector: 'app-server-sockets',\n templateUrl: './server-sockets.component.html',\n styleUrls: ['./server-sockets.component.css']\n})\nexport class ServerSocketsComponent implements OnInit {\n sockets: any[];\n serverId: number;\n socketStartId: number;\n nextSocketId: number;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService\n ) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/serversockets/${this.serverId}/${this.socketStartId}`);\n }\n\n private render(): void {\n const serverIdParam = this.route.snapshot.paramMap.get('serverId');\n this.serverId = serverIdParam == null ? 0 : +serverIdParam;\n const socketStartIdParam = this.route.snapshot.paramMap.get('socketStartId');\n this.socketStartId = socketStartIdParam == null ? 0 : +socketStartIdParam;\n this.channelzService.getServerSockets(this.serverId, this.socketStartId)\n .subscribe((resp: any) => this.handleResponse(resp));\n }\n\n private handleResponse(resp: any): void {\n this.sockets = resp.getSocketRefList();\n if (!resp.getEnd()) {\n const last = this.sockets[this.sockets.length - 1];\n this.nextSocketId = last.getSocketId();\n } else {\n this.nextSocketId = null;\n }\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing servers starting from:

\\nServer id:\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
ServerCalls startedCalls succeededCalls failedLast call started tsListen Sockets
{{server.getRef().getServerId()}}[{{server.getRef().getName()}}]{{server.getData().getCallsStarted()}}{{server.getData().getCallsSucceeded()}}{{server.getData().getCallsFailed()}}{{server.getData().getLastCallStartedTimestamp() | dateFromProto}}\\n \\n
\\n
\\n
\\n Click here for next page\\n
\\n
\\n

End of results

\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\n\n@Component({\n selector: 'app-servers',\n templateUrl: './servers.component.html',\n styleUrls: ['./servers.component.css']\n})\nexport class ServersComponent implements OnInit {\n startId: number = 0;\n serversList: any[];\n nextId: string;\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/servers/${this.startId}`);\n }\n\n private render(): void {\n const startIdParam = this.route.snapshot.paramMap.get('startId');\n this.startId = startIdParam == null ? 0 : +startIdParam;\n this.channelzService.getServers(this.startId)\n .subscribe((resp: any) => this.handleResponse(resp));\n }\n\n private handleResponse(resp: any): void {\n this.serversList = resp.getServerList();\n if (!resp.getEnd()) {\n const last = this.serversList[this.serversList.length - 1];\n this.nextId = last.getRef().getServerId();\n } else {\n this.nextId = null;\n }\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing socket:

\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FieldValue
Socketref
{{socket.getRef().getSocketId()}}[{{socket.getRef().getName()}}]
Local Address
{{socket.getLocal() | addrToString}}
Remote Address
{{socket.getRemote() | addrToString}}
Security
{{securiyStr}}
Data
{{simplifiedData}}
Socket Option: {{opt.name}}
{{opt.value}}
\\n
\\n
\\n

Socket does not exist

\\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport { DateFromProto, protoAnyToStringHelper } from '../utils'\n\nexport class SocketOpt {\n constructor(public name: string, public value: string) {}\n}\n\n@Component({\n selector: 'app-socket',\n templateUrl: './socket.component.html',\n styleUrls: ['./socket.component.css']\n})\nexport class SocketComponent implements OnInit {\n enteredData: string;\n socket: any;\n id: number;\n simplifiedData: any;\n securiyStr: string;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/socket/${this.enteredData}`);\n }\n\n private render(): void {\n const idParam = this.route.snapshot.paramMap.get('id');\n this.id = idParam == null ? 0 : +idParam;\n this.enteredData = this.id.toString();\n this.channelzService.getSocket(+this.id)\n .subscribe((response: any) => this.handleResponse(response));\n }\n\n private handleResponse(socketResponse: any): void {\n this.socket = socketResponse.getSocket();\n this.simplifiedData = this.simplifiedDataHelper();\n this.securiyStr = this.securityHelper(this.socket.getSecurity());\n }\n\n /**\n * Returns a copy of the socket data, but with socket options removed.\n */\n simplifiedDataHelper(): string {\n const data = this.socket.getData();\n if (data == null) {\n return \"undefined\";\n }\n return `Streams started: ${data.getStreamsStarted()}\nStreams succeeded: ${data.getStreamsSucceeded()}\nStreams failed: ${data.getStreamsFailed()}\nMessages sent: ${data.getMessagesSent()}\nMessages received: ${data.getMessagesReceived()}\nKeepalives sent: ${data.getKeepAlivesSent()}\nLast local stream created: ${DateFromProto.transform(data.getLastLocalStreamCreatedTimestamp())}\nLast remote stream created: ${DateFromProto.transform(data.getLastRemoteStreamCreatedTimestamp())}\nLast message sent: ${DateFromProto.transform(data.getLastMessageSentTimestamp())}\nLast message received: ${DateFromProto.transform(data.getLastMessageReceivedTimestamp())}\nLocal flow control window: ${data.getLocalFlowControlWindow()}\nRemote flow control window: ${data.getRemoteFlowControlWindow()}\n`\n }\n\n securityHelper(security: any): string {\n if (security == null) {\n return \"plaintext\";\n }\n if (security.getTls() != null) {\n const tls = security.getTls();\n return `standard name: ${tls.getStandardName()}\nother name: ${tls.getOtherName()}\nlocal cert (base64): ${btoa(tls.getLocalCertificate())}\nremote cert (base64): ${btoa(tls.getRemoteCertificate())}`;\n } else if (security.getOther() != null) {\n const other = security.getOther();\n return `name: ${other.getName()}\nvalue: ${protoAnyToStringHelper(other.getValue())}`;\n } else {\n return \"plaintext\"\n }\n }\n\n socketOptions(): SocketOpt[] {\n const data = this.socket.getData();\n if (data == null || data.getOptionList() == null) {\n return [];\n }\n\n return data.getOptionList().map((opt: any) => {\n if (opt.getAdditional() != null) {\n return new SocketOpt(\n opt.getName(), protoAnyToStringHelper(opt.getAdditional()));\n } else {\n return new SocketOpt(opt.getName(), opt.getValue());\n }\n });\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing subchannel:

\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FieldValue
SubchannelRef
{{subchannel.getRef().getSubchannelId()}}[{{subchannel.getRef().getName()}}]
Data
{{subchannelDataStr}}
Channels\\n \\n
Subchannels\\n \\n
Sockets\\n \\n
Channel trace summary
{{traceSummary}}
Channel trace events\\n
No events recorded
\\n
\\n
{{evt.combinedDetails}}
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n

Subchannel does not exist

\\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport {\n channelDataHelper, channelTraceSummary,\n TraceEvent,\n traceEventHelper\n} from '../utils';\n\n@Component({\n selector: 'app-subchannel',\n templateUrl: './subchannel.component.html',\n styleUrls: ['./subchannel.component.css']\n})\nexport class SubchannelComponent implements OnInit {\n enteredData: string;\n subchannel: any;\n id: number;\n subchannelDataStr: string;\n traceSummary: string;\n traceEvents: TraceEvent[] = null;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl('/channelz/subchannel/' + this.enteredData);\n }\n\n private render(): void {\n const idParam = this.route.snapshot.paramMap.get('id');\n this.id = idParam == null ? 0 : +idParam;\n this.enteredData = this.id.toString();\n this.channelzService.getSubchannel(this.id)\n .subscribe((response: any) => this.handleResponse(response));\n }\n\n private handleResponse(resp: any): void {\n this.subchannel = resp.getSubchannel();\n this.subchannelDataStr = channelDataHelper(this.subchannel.getData());\n const channelTrace = this.subchannel.getData().getTrace();\n if (channelTrace != null && channelTrace.getEvents() != null) {\n this.traceSummary = channelTraceSummary(channelTrace);\n this.traceEvents = traceEventHelper(channelTrace.getEvents());\n }\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing top level channels starting from:

\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
ChannelDataChannelsSubchannelsSockets
{{c.getRef().getChannelId()}}[{{c.getRef().getName()}}]
{{channelDataHelperProxy(c.getData())}}
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n Click here for next page\\n
\\n
\\n

End of results

\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport { channelDataHelper } from '../utils';\n\n@Component({\n selector: 'app-top-channels',\n templateUrl: './top-channels.component.html',\n styleUrls: ['./top-channels.component.css']\n})\nexport class TopChannelsComponent implements OnInit {\n startId: number = 0;\n topChannelsList: any[];\n nextId:number;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/topchannels/${this.startId}`)\n }\n\n private render(): void {\n const startIdParam = this.route.snapshot.paramMap.get('startId');\n this.startId = startIdParam == null ? 0 : +startIdParam;\n this.channelzService.getTopChannels(this.startId)\n .subscribe((resp: any) => this.handleResponse(resp));\n }\n\n channelDataHelperProxy(channelData: any): string {\n return channelDataHelper(channelData);\n }\n\n private handleResponse(resp: any): void {\n this.topChannelsList = resp.getChannelList();\n if (!resp.getEnd()) {\n const last = this.topChannelsList[this.topChannelsList.length - 1];\n this.nextId = last.getRef().getChannelId();\n } else {\n this.nextId = null;\n }\n }\n}\n","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n// When building with angular CLI in OSS:\n// The standalone channelz.js file provides a proto symbol with the\n// client and message types. goog.require() is effectively a noop.\n// When building with closure compiler:\n// goog.require() imports the client and message libraries\ndeclare var goog: any;\ngoog.require('proto.grpc.channelz.v1.SocketOptionLinger');\ngoog.require('proto.grpc.channelz.v1.SocketOptionTimeout');\ngoog.require('proto.grpc.channelz.v1.SocketOptionTcpInfo');\ngoog.require('proto.grpc.channelz.v1.ChannelConnectivityState.State');\ndeclare var proto: any;\n\nconst protoAnyToStringHelpers = {\n 'type.googleapis.com/grpc.channelz.v1.SocketOptionLinger': (protoAny: any) => {\n const solinger = proto.grpc.channelz.v1.SocketOptionLinger.deserializeBinary(protoAny.getValue());\n const duration = solinger.getDuration();\n if ('undefined' === typeof duration) {\n return \"active: \" + solinger.getActive();\n }\n return \"active: \" + solinger.getActive() + \"\\n\" +\n \"seconds: \" + duration.getSeconds() + \"\\n\" +\n \"nanos: \" + duration.getNanos() + \"\\n\";\n },\n 'type.googleapis.com/grpc.channelz.v1.SocketOptionTimeout': (protoAny: any) => {\n const sotimeout = proto.grpc.channelz.v1.SocketOptionTimeout.deserializeBinary(protoAny.getValue());\n return \"seconds: \" + sotimeout.getDuration().getSeconds() + \"\\n\" +\n \"nanos: \" + sotimeout.getDuration().getNanos() + \"\\n\";\n },\n 'type.googleapis.com/grpc.channelz.v1.SocketOptionTcpInfo': (protoAny: any) => {\n const tcpi = proto.grpc.channelz.v1.SocketOptionTcpInfo.deserializeBinary(protoAny.getValue());\n return \"tcpi_state: \" + tcpi.getTcpiState() + \"\\n\" +\n \"tcpi_ca_state: \" + tcpi.getTcpiCaState() + \"\\n\" +\n \"tcpi_retransmits: \" + tcpi.getTcpiRetransmits() + \"\\n\" +\n \"tcpi_probes: \" + tcpi.getTcpiProbes() + \"\\n\" +\n \"tcpi_backoff: \" + tcpi.getTcpiBackoff() + \"\\n\" +\n \"tcpi_options: \" + tcpi.getTcpiOptions() + \"\\n\" +\n \"tcpi_snd_wscale: \" + tcpi.getTcpiSndWscale() + \"\\n\" +\n \"tcpi_rcv_wscale: \" + tcpi.getTcpiRcvWscale() + \"\\n\" +\n \"tcpi_rto: \" + tcpi.getTcpiRto() + \"\\n\" +\n \"tcpi_ato: \" + tcpi.getTcpiAto() + \"\\n\" +\n \"tcpi_snd_mss: \" + tcpi.getTcpiSndMss() + \"\\n\" +\n \"tcpi_rcv_mss: \" + tcpi.getTcpiRcvMss() + \"\\n\" +\n \"tcpi_unacked: \" + tcpi.getTcpiUnacked() + \"\\n\" +\n \"tcpi_sacked: \" + tcpi.getTcpiSacked() + \"\\n\" +\n \"tcpi_lost: \" + tcpi.getTcpiLost() + \"\\n\" +\n \"tcpi_retrans: \" + tcpi.getTcpiRetrans() + \"\\n\" +\n \"tcpi_fackets: \" + tcpi.getTcpiFackets() + \"\\n\" +\n \"tcpi_last_data_sent: \" + tcpi.getTcpiLastDataSent() + \"\\n\" +\n \"tcpi_last_ack_sent: \" + tcpi.getTcpiLastAckSent() + \"\\n\" +\n \"tcpi_last_data_recv: \" + tcpi.getTcpiLastDataRecv() + \"\\n\" +\n \"tcpi_last_ack_recv: \" + tcpi.getTcpiLastAckRecv() + \"\\n\" +\n \"tcpi_pmtu: \" + tcpi.getTcpiPmtu() + \"\\n\" +\n \"tcpi_rcv_ssthresh: \" + tcpi.getTcpiRcvSsthresh() + \"\\n\" +\n \"tcpi_rtt: \" + tcpi.getTcpiRtt() + \"\\n\" +\n \"tcpi_rttvar: \" + tcpi.getTcpiRttvar() + \"\\n\" +\n \"tcpi_snd_ssthresh: \" + tcpi.getTcpiSndSsthresh() + \"\\n\" +\n \"tcpi_snd_cwnd: \" + tcpi.getTcpiSndCwnd() + \"\\n\" +\n \"tcpi_advmss: \" + tcpi.getTcpiAdvmss() + \"\\n\" +\n \"tcpi_reordering: \" + tcpi.getTcpiReordering() + \"\\n\";\n }\n};\n\nexport function protoAnyToStringHelper(packedAny: any): string {\n if (packedAny.getTypeUrl() in protoAnyToStringHelpers) {\n return protoAnyToStringHelpers[packedAny.getTypeUrl()](packedAny);\n } else {\n return \"Unrecognized Any type: \" + packedAny.getTypeUrl();\n }\n}\n\nexport class TraceEvent {\n constructor(\n public combinedDetails: string,\n public channelRef: any,\n public subchannelRef: any) {}\n}\n\nexport function traceEventHelper(events: any[]): TraceEvent[] {\n return events.map((evt: any) => {\n return new TraceEvent(\n channelTraceEventData(evt),\n evt.getChannelRef(),\n evt.getSubchannelRef()\n )});\n}\n\n// Registers a handler that can take a google.protobuf.Any for the given\n// typeUrl and returns a human friendly string.\nexport function registerProtoAnyToStringFn(\n typeUrl: string,\n fn: (protoAny: any) => string): void {\n protoAnyToStringHelpers[typeUrl] = fn;\n}\n\nfunction protoEnumToString(enumClass, enumVal) {\n return Object.keys(enumClass).find(k => enumClass[k] === enumVal);\n}\n\nexport function channelTraceSummary(ct: any): string {\n if (ct == null) {\n return \"None\"\n }\n return `events logged: ${ct.getNumEventsLogged()}\nchannel creation timestamp: ${DateFromProto.transform(ct.getCreationTimestamp())}`;\n}\n\nexport function channelTraceEventData(evt: any): string {\n if (evt == null) {\n return \"undefined\"\n }\n const timestamp = DateFromProto.transform(evt.getTimestamp());\n const description = evt.getDescription();\n const sev = protoEnumToString(\n proto.grpc.channelz.v1.ChannelTraceEvent.Severity,\n evt.getSeverity());\n return `${timestamp} ${sev} ${description}`;\n}\n\nexport function channelDataHelper(channelData: any): string {\n return `state: ${protoEnumToString(proto.grpc.channelz.v1.ChannelConnectivityState.State, channelData.getState().getState())}\ntarget: ${channelData.getTarget()}\ncalls started: ${channelData.getCallsStarted()}\ncalls succeeded: ${channelData.getCallsSucceeded()}\ncalls failed: ${channelData.getCallsFailed()}\nlast call started: ${DateFromProto.transform(channelData.getLastCallStartedTimestamp())}`;\n}\n\n@Pipe({name: 'dateFromProto'})\nexport class DateFromProto implements PipeTransform {\n transform(protodate: any): string {\n return DateFromProto.transform(protodate);\n }\n\n static transform(protodate: any): string {\n if (protodate == null) {\n return \"undefined\"\n }\n // the 0 is required to set the initial date to unix epoch\n const date = new Date(0);\n date.setUTCSeconds(protodate.getSeconds());\n date.setUTCMilliseconds(protodate.getNanos() / 1000000.0);\n return date.toISOString();\n }\n}\n\n@Pipe({name: 'addrToString'})\nexport class AddrToString implements PipeTransform {\n transform(value: any): string {\n return AddrToString.transform(value);\n }\n\n static transform(addr: any): string {\n if (addr == null) {\n return \"undefined\"\n } else if (addr.getUdsAddress() != null) {\n return addr.getUdsAddress();\n } else if (addr.getOtherAddress() != null) {\n return protoAnyToStringHelper(addr.getOtherAddress().getValue());\n } else {\n const tcpAddrPort = addr.getTcpipAddress();\n const tcpAddr = tcpAddrPort.getIpAddress();\n if (tcpAddr.length === 4) {\n // ipv4: turn bytes into decimal form\n return tcpAddr\n .join(\".\") + \":\" + tcpAddrPort.getPort();\n } else if (tcpAddr.length === 16) {\n // ipv6: turn bytes into hex, pad with a 0 so always 2 digits long\n const hex = tcpAddr\n .map((c: number) => (\"0\" + c.toString(16)).substr(-2))\n .join(\"\");\n // use regex to split into 4 character chunks\n return \"[\" + hex.match(/..../g).join(\":\") + \"]:\" + tcpAddrPort.getPort();\n }\n }\n }\n}\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n // window.location.origin is the reverse proxy that both serves the\n // app and performs grpc-web translation\n grpcRemoteAddr: window.location.origin,\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\n// this file differs with internal, must use instead:\n// import { AppModuleNgFactory } from './app/app.module.ngfactory';\n// platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)\n// .catch((err: any) => console.log(err));\n\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch((err: any) => console.log(err));\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/channel/channel.component.css","webpack:///./src/app/channel/channel.component.html","webpack:///./src/app/channel/channel.component.ts","webpack:///./src/app/channelz.service.ts","webpack:///./src/app/help/help.component.css","webpack:///./src/app/help/help.component.html","webpack:///./src/app/help/help.component.ts","webpack:///./src/app/server-sockets/server-sockets.component.css","webpack:///./src/app/server-sockets/server-sockets.component.html","webpack:///./src/app/server-sockets/server-sockets.component.ts","webpack:///./src/app/servers/servers.component.css","webpack:///./src/app/servers/servers.component.html","webpack:///./src/app/servers/servers.component.ts","webpack:///./src/app/socket/socket.component.css","webpack:///./src/app/socket/socket.component.html","webpack:///./src/app/socket/socket.component.ts","webpack:///./src/app/subchannel/subchannel.component.css","webpack:///./src/app/subchannel/subchannel.component.html","webpack:///./src/app/subchannel/subchannel.component.ts","webpack:///./src/app/top-channels/top-channels.component.css","webpack:///./src/app/top-channels/top-channels.component.html","webpack:///./src/app/top-channels/top-channels.component.ts","webpack:///./src/app/utils.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error('Cannot find module \"' + req + '\".');\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ServersComponent } from './servers/servers.component';\nimport { SocketComponent } from './socket/socket.component';\nimport { TopChannelsComponent } from './top-channels/top-channels.component';\nimport { SubchannelComponent } from './subchannel/subchannel.component';\nimport { ChannelComponent } from './channel/channel.component';\nimport { ServerSocketsComponent } from './server-sockets/server-sockets.component';\nimport { HelpComponent } from './help/help.component';\n\nconst routes: Routes = [\n { path: 'channelz/servers/:startId', component: ServersComponent },\n { path: 'channelz/servers', component: ServersComponent },\n { path: 'channelz/servers/:startId', component: ServersComponent },\n { path: 'channelz/servers', component: ServersComponent },\n { path: 'channelz/topchannels/:startId', component: TopChannelsComponent },\n { path: 'channelz/topchannels', component: TopChannelsComponent },\n { path: 'channelz/socket/:id', component: SocketComponent},\n { path: 'channelz/socket', component: SocketComponent},\n { path: 'channelz/channel/:id', component: ChannelComponent },\n { path: 'channelz/channel', component: ChannelComponent },\n { path: 'channelz/subchannel/:id', component: SubchannelComponent },\n { path: 'channelz/subchannel', component: SubchannelComponent },\n { path: 'channelz/serversockets/:serverId/:socketStartId', component: ServerSocketsComponent },\n { path: 'channelz/serversockets/:serverId', component: ServerSocketsComponent },\n { path: 'channelz/serversockets', component: ServerSocketsComponent },\n { path: 'channelz/help', component: HelpComponent },\n { path: 'channelz', redirectTo: '/', pathMatch: 'full' },\n { path: '', redirectTo: '/', pathMatch: 'full' },\n];\n\n@NgModule({\n exports: [ RouterModule ],\n imports: [ RouterModule.forRoot(routes) ],\n})\nexport class AppRoutingModule {}\n","module.exports = \"\"","module.exports = \"

Channelz

\\n\\n\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Channelz';\n}\n","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from './app-routing.module';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { ServersComponent } from './servers/servers.component';\nimport { SocketComponent } from './socket/socket.component';\n\nimport { ChannelComponent } from './channel/channel.component';\nimport { ChannelzService } from './channelz.service';\nimport { HelpComponent } from './help/help.component';\nimport { AddrToString, DateFromProto } from './utils';\nimport { ServerSocketsComponent } from './server-sockets/server-sockets.component';\nimport { SubchannelComponent } from './subchannel/subchannel.component';\nimport { TopChannelsComponent } from './top-channels/top-channels.component';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n AddrToString,\n DateFromProto,\n ChannelComponent,\n HelpComponent,\n ServerSocketsComponent,\n ServersComponent,\n SocketComponent,\n SubchannelComponent,\n TopChannelsComponent,\n ],\n imports: [\n AppRoutingModule,\n BrowserModule,\n CommonModule,\n FormsModule,\n ],\n providers: [ChannelzService],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","module.exports = \"\"","module.exports = \"

Showing channel:

\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FieldValue
ChannelRef
{{channel.getRef().getChannelId()}}[{{channel.getRef().getName()}}]
Data
{{channelDataStr}}
Channels\\n \\n
Subchannels\\n \\n
Sockets\\n \\n
Channel trace summary
{{traceSummary}}
Channel trace events\\n
No events recorded
\\n
\\n
{{evt.combinedDetails}}
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n

Channel does not exist

\\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport {\n channelDataHelper, channelTraceSummary,\n TraceEvent,\n traceEventHelper,\n} from '../utils';\n\n@Component({\n selector: 'app-channel',\n templateUrl: './channel.component.html',\n styleUrls: ['./channel.component.css']\n})\nexport class ChannelComponent implements OnInit {\n enteredData: string = \"0\";\n channel: any;\n id: number = 0;\n channelDataStr: string;\n traceSummary: String;\n traceEvents: TraceEvent[] = null;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl('/channelz/channel/' + this.enteredData);\n }\n\n private render(): void {\n const idParam = this.route.snapshot.paramMap.get('id');\n this.id = idParam == null ? 0 : +idParam;\n this.enteredData = this.id.toString();\n this.channelzService.getChannel(this.id)\n .subscribe((response: any) => this.handleResponse(response));\n }\n\n private handleResponse(resp: any): void {\n this.channel = resp.getChannel();\n this.channelDataStr = channelDataHelper(this.channel.getData());\n const channelTrace = this.channel.getData().getTrace();\n if (channelTrace != null && channelTrace.getEventsList() != null) {\n this.traceSummary = channelTraceSummary(channelTrace);\n this.traceEvents = traceEventHelper(channelTrace.getEventsList());\n }\n }\n}\n","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../environments/environment\";\n\n// When building with angular CLI in OSS:\n// The standalone channelz.js file provides a proto symbol with the\n// client and message types. goog.require() is effectively a noop.\n// When building with closure compiler:\n// goog.require() imports the client and message libraries\ndeclare var goog: any;\ngoog.require('proto.grpc.channelz.v1.ChannelzClient');\ngoog.require('proto.grpc.channelz.v1.GetChannelRequest');\ngoog.require('proto.grpc.channelz.v1.GetServerSocketsRequest');\ngoog.require('proto.grpc.channelz.v1.GetServersRequest');\ngoog.require('proto.grpc.channelz.v1.GetSocketRequest');\ngoog.require('proto.grpc.channelz.v1.GetSubchannelRequest');\ngoog.require('proto.grpc.channelz.v1.GetTopChannelsRequest');\ndeclare var proto: any;\n\n@Injectable()\nexport class ChannelzService {\n xsrfMeta: {};\n client: any;\n\n constructor() {\n this.xsrfMeta = ChannelzService.genXsrfMeta();\n this.client = new proto.grpc.channelz.v1.ChannelzClient(\n environment.grpcRemoteAddr);\n }\n\n private static genXsrfMeta(): any {\n const arr = new Int8Array(32); // 256 bits of entropy\n window.crypto.getRandomValues(arr);\n const xsrfVal = btoa(arr.toString());\n document.cookie = `gdebug-xsrf-token=${xsrfVal};path=/`;\n return {\"gdebug-xsrf-token\": xsrfVal};\n }\n\n private functionToObserver(rpcMethod: any, req: any): Observable {\n return new Observable(observer => {\n // To use a method passed around as a parameter, the method must be bound\n // to an instance of the object.\n rpcMethod.bind(this.client)(req, this.xsrfMeta, function(err, response) {\n observer.next(response);\n observer.complete();\n })\n }\n )\n }\n\n getServers(startId: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetServersRequest();\n req.setStartServerId(startId);\n return this.functionToObserver(this.client.getServers, req);\n }\n\n getServerSockets(serverId: number, startId: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetServerSocketsRequest();\n req.setServerId(serverId);\n req.setStartSocketId(startId);\n return this.functionToObserver(this.client.getServerSockets, req);\n }\n\n getTopChannels(startId: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetTopChannelsRequest();\n req.setStartChannelId(startId);\n return this.functionToObserver(this.client.getTopChannels, req);\n }\n\n getSubchannel(id: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetSubchannelRequest();\n req.setSubchannelId(id);\n return this.functionToObserver(this.client.getSubchannel, req);\n }\n\n getChannel(id: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetChannelRequest();\n req.setChannelId(id);\n return this.functionToObserver(this.client.getChannel, req);\n }\n\n getSocket(id: number): Observable<{}> {\n const req = new proto.grpc.channelz.v1.GetSocketRequest();\n req.setSocketId(id);\n return this.functionToObserver(this.client.getSocket, req);\n }\n}\n","module.exports = \"\"","module.exports = \"
\\n

Java notes:

\\n
    \\n
  • InProcessTransport is not a real socket, so in process servers and channels will\\n not provide socket level stats. If you try to load an InProcesTransport, channelz will\\n report that the socket is not found. This is normal. Use the provided channel, subchannel, or\\n server level stats instead.
  • \\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-help',\n templateUrl: './help.component.html',\n styleUrls: ['./help.component.css']\n})\nexport class HelpComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n}\n","module.exports = \"\"","module.exports = \"

Showing server sockets starting from:

\\nServer id:\\n\\nStarting socket:\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n
Sockets
\\n {{s.getSocketId()}}[{{s.getName()}}]\\n
\\n
\\n
\\n Click here for next page\\n
\\n
\\n

End of results

\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\n\n@Component({\n selector: 'app-server-sockets',\n templateUrl: './server-sockets.component.html',\n styleUrls: ['./server-sockets.component.css']\n})\nexport class ServerSocketsComponent implements OnInit {\n sockets: any[];\n serverId: number;\n socketStartId: number;\n nextSocketId: number;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService\n ) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/serversockets/${this.serverId}/${this.socketStartId}`);\n }\n\n private render(): void {\n const serverIdParam = this.route.snapshot.paramMap.get('serverId');\n this.serverId = serverIdParam == null ? 0 : +serverIdParam;\n const socketStartIdParam = this.route.snapshot.paramMap.get('socketStartId');\n this.socketStartId = socketStartIdParam == null ? 0 : +socketStartIdParam;\n this.channelzService.getServerSockets(this.serverId, this.socketStartId)\n .subscribe((resp: any) => this.handleResponse(resp));\n }\n\n private handleResponse(resp: any): void {\n this.sockets = resp.getSocketRefList();\n if (!resp.getEnd()) {\n const last = this.sockets[this.sockets.length - 1];\n this.nextSocketId = last.getSocketId();\n } else {\n this.nextSocketId = null;\n }\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing servers starting from:

\\nServer id:\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
ServerCalls startedCalls succeededCalls failedLast call started tsListen Sockets
{{server.getRef().getServerId()}}[{{server.getRef().getName()}}]{{server.getData().getCallsStarted()}}{{server.getData().getCallsSucceeded()}}{{server.getData().getCallsFailed()}}{{server.getData().getLastCallStartedTimestamp() | dateFromProto}}\\n \\n
\\n
\\n
\\n Click here for next page\\n
\\n
\\n

End of results

\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\n\n@Component({\n selector: 'app-servers',\n templateUrl: './servers.component.html',\n styleUrls: ['./servers.component.css']\n})\nexport class ServersComponent implements OnInit {\n startId: number = 0;\n serversList: any[];\n nextId: string;\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/servers/${this.startId}`);\n }\n\n private render(): void {\n const startIdParam = this.route.snapshot.paramMap.get('startId');\n this.startId = startIdParam == null ? 0 : +startIdParam;\n this.channelzService.getServers(this.startId)\n .subscribe((resp: any) => this.handleResponse(resp));\n }\n\n private handleResponse(resp: any): void {\n this.serversList = resp.getServerList();\n if (!resp.getEnd()) {\n const last = this.serversList[this.serversList.length - 1];\n this.nextId = last.getRef().getServerId();\n } else {\n this.nextId = null;\n }\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing socket:

\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FieldValue
Socketref
{{socket.getRef().getSocketId()}}[{{socket.getRef().getName()}}]
Local Address
{{socket.getLocal() | addrToString}}
Remote Address
{{socket.getRemote() | addrToString}}
Security
{{securiyStr}}
Data
{{simplifiedData}}
Socket Option: {{opt.name}}
{{opt.value}}
\\n
\\n
\\n

Socket does not exist

\\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport { DateFromProto, protoAnyToStringHelper } from '../utils'\n\nexport class SocketOpt {\n constructor(public name: string, public value: string) {}\n}\n\n@Component({\n selector: 'app-socket',\n templateUrl: './socket.component.html',\n styleUrls: ['./socket.component.css']\n})\nexport class SocketComponent implements OnInit {\n enteredData: string;\n socket: any;\n id: number;\n simplifiedData: any;\n securiyStr: string;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/socket/${this.enteredData}`);\n }\n\n private render(): void {\n const idParam = this.route.snapshot.paramMap.get('id');\n this.id = idParam == null ? 0 : +idParam;\n this.enteredData = this.id.toString();\n this.channelzService.getSocket(+this.id)\n .subscribe((response: any) => this.handleResponse(response));\n }\n\n private handleResponse(socketResponse: any): void {\n this.socket = socketResponse.getSocket();\n this.simplifiedData = this.simplifiedDataHelper();\n this.securiyStr = this.securityHelper(this.socket.getSecurity());\n }\n\n /**\n * Returns a copy of the socket data, but with socket options removed.\n */\n simplifiedDataHelper(): string {\n const data = this.socket.getData();\n if (data == null) {\n return \"undefined\";\n }\n return `Streams started: ${data.getStreamsStarted()}\nStreams succeeded: ${data.getStreamsSucceeded()}\nStreams failed: ${data.getStreamsFailed()}\nMessages sent: ${data.getMessagesSent()}\nMessages received: ${data.getMessagesReceived()}\nKeepalives sent: ${data.getKeepAlivesSent()}\nLast local stream created: ${DateFromProto.transform(data.getLastLocalStreamCreatedTimestamp())}\nLast remote stream created: ${DateFromProto.transform(data.getLastRemoteStreamCreatedTimestamp())}\nLast message sent: ${DateFromProto.transform(data.getLastMessageSentTimestamp())}\nLast message received: ${DateFromProto.transform(data.getLastMessageReceivedTimestamp())}\nLocal flow control window: ${data.getLocalFlowControlWindow()}\nRemote flow control window: ${data.getRemoteFlowControlWindow()}\n`\n }\n\n securityHelper(security: any): string {\n if (security == null) {\n return \"plaintext\";\n }\n if (security.getTls() != null) {\n const tls = security.getTls();\n return `standard name: ${tls.getStandardName()}\nother name: ${tls.getOtherName()}\nlocal cert (base64): ${btoa(tls.getLocalCertificate())}\nremote cert (base64): ${btoa(tls.getRemoteCertificate())}`;\n } else if (security.getOther() != null) {\n const other = security.getOther();\n return `name: ${other.getName()}\nvalue: ${protoAnyToStringHelper(other.getValue())}`;\n } else {\n return \"plaintext\"\n }\n }\n\n socketOptions(): SocketOpt[] {\n const data = this.socket.getData();\n if (data == null || data.getOptionList() == null) {\n return [];\n }\n\n return data.getOptionList().map((opt: any) => {\n if (opt.getAdditional() != null) {\n return new SocketOpt(\n opt.getName(), protoAnyToStringHelper(opt.getAdditional()));\n } else {\n return new SocketOpt(opt.getName(), opt.getValue());\n }\n });\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing subchannel:

\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
FieldValue
SubchannelRef
{{subchannel.getRef().getSubchannelId()}}[{{subchannel.getRef().getName()}}]
Data
{{subchannelDataStr}}
Channels\\n \\n
Subchannels\\n \\n
Sockets\\n \\n
Channel trace summary
{{traceSummary}}
Channel trace events\\n
No events recorded
\\n
\\n
{{evt.combinedDetails}}
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n

Subchannel does not exist

\\n
\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport {\n channelDataHelper, channelTraceSummary,\n TraceEvent,\n traceEventHelper\n} from '../utils';\n\n@Component({\n selector: 'app-subchannel',\n templateUrl: './subchannel.component.html',\n styleUrls: ['./subchannel.component.css']\n})\nexport class SubchannelComponent implements OnInit {\n enteredData: string;\n subchannel: any;\n id: number;\n subchannelDataStr: string;\n traceSummary: string;\n traceEvents: TraceEvent[] = null;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl('/channelz/subchannel/' + this.enteredData);\n }\n\n private render(): void {\n const idParam = this.route.snapshot.paramMap.get('id');\n this.id = idParam == null ? 0 : +idParam;\n this.enteredData = this.id.toString();\n this.channelzService.getSubchannel(this.id)\n .subscribe((response: any) => this.handleResponse(response));\n }\n\n private handleResponse(resp: any): void {\n this.subchannel = resp.getSubchannel();\n this.subchannelDataStr = channelDataHelper(this.subchannel.getData());\n const channelTrace = this.subchannel.getData().getTrace();\n if (channelTrace != null && channelTrace.getEvents() != null) {\n this.traceSummary = channelTraceSummary(channelTrace);\n this.traceEvents = traceEventHelper(channelTrace.getEvents());\n }\n }\n}\n","module.exports = \"\"","module.exports = \"

Showing top level channels starting from:

\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
ChannelDataChannelsSubchannelsSockets
{{c.getRef().getChannelId()}}[{{c.getRef().getName()}}]
{{channelDataHelperProxy(c.getData())}}
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n Click here for next page\\n
\\n
\\n

End of results

\\n
\\n\"","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChannelzService } from '../channelz.service';\nimport { channelDataHelper } from '../utils';\n\n@Component({\n selector: 'app-top-channels',\n templateUrl: './top-channels.component.html',\n styleUrls: ['./top-channels.component.css']\n})\nexport class TopChannelsComponent implements OnInit {\n startId: number = 0;\n topChannelsList: any[];\n nextId:number;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private channelzService: ChannelzService) { }\n\n ngOnInit() {\n this.render();\n this.route.params.subscribe(e => this.render());\n }\n\n processEntry(): void {\n this.router.navigateByUrl(`/channelz/topchannels/${this.startId}`)\n }\n\n private render(): void {\n const startIdParam = this.route.snapshot.paramMap.get('startId');\n this.startId = startIdParam == null ? 0 : +startIdParam;\n this.channelzService.getTopChannels(this.startId)\n .subscribe((resp: any) => this.handleResponse(resp));\n }\n\n channelDataHelperProxy(channelData: any): string {\n return channelDataHelper(channelData);\n }\n\n private handleResponse(resp: any): void {\n this.topChannelsList = resp.getChannelList();\n if (!resp.getEnd()) {\n const last = this.topChannelsList[this.topChannelsList.length - 1];\n this.nextId = last.getRef().getChannelId();\n } else {\n this.nextId = null;\n }\n }\n}\n","/*\n * @license\n * Copyright 2018, gRPC Authors All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n// When building with angular CLI in OSS:\n// The standalone channelz.js file provides a proto symbol with the\n// client and message types. goog.require() is effectively a noop.\n// When building with closure compiler:\n// goog.require() imports the client and message libraries\ndeclare var goog: any;\ngoog.require('proto.grpc.channelz.v1.SocketOptionLinger');\ngoog.require('proto.grpc.channelz.v1.SocketOptionTimeout');\ngoog.require('proto.grpc.channelz.v1.SocketOptionTcpInfo');\ngoog.require('proto.grpc.channelz.v1.ChannelConnectivityState.State');\ndeclare var proto: any;\n\nconst protoAnyToStringHelpers = {\n 'type.googleapis.com/grpc.channelz.v1.SocketOptionLinger': (protoAny: any) => {\n const solinger = proto.grpc.channelz.v1.SocketOptionLinger.deserializeBinary(protoAny.getValue());\n const duration = solinger.getDuration();\n if ('undefined' === typeof duration) {\n return \"active: \" + solinger.getActive();\n }\n return \"active: \" + solinger.getActive() + \"\\n\" +\n \"seconds: \" + duration.getSeconds() + \"\\n\" +\n \"nanos: \" + duration.getNanos() + \"\\n\";\n },\n 'type.googleapis.com/grpc.channelz.v1.SocketOptionTimeout': (protoAny: any) => {\n const sotimeout = proto.grpc.channelz.v1.SocketOptionTimeout.deserializeBinary(protoAny.getValue());\n return \"seconds: \" + sotimeout.getDuration().getSeconds() + \"\\n\" +\n \"nanos: \" + sotimeout.getDuration().getNanos() + \"\\n\";\n },\n 'type.googleapis.com/grpc.channelz.v1.SocketOptionTcpInfo': (protoAny: any) => {\n const tcpi = proto.grpc.channelz.v1.SocketOptionTcpInfo.deserializeBinary(protoAny.getValue());\n return \"tcpi_state: \" + tcpi.getTcpiState() + \"\\n\" +\n \"tcpi_ca_state: \" + tcpi.getTcpiCaState() + \"\\n\" +\n \"tcpi_retransmits: \" + tcpi.getTcpiRetransmits() + \"\\n\" +\n \"tcpi_probes: \" + tcpi.getTcpiProbes() + \"\\n\" +\n \"tcpi_backoff: \" + tcpi.getTcpiBackoff() + \"\\n\" +\n \"tcpi_options: \" + tcpi.getTcpiOptions() + \"\\n\" +\n \"tcpi_snd_wscale: \" + tcpi.getTcpiSndWscale() + \"\\n\" +\n \"tcpi_rcv_wscale: \" + tcpi.getTcpiRcvWscale() + \"\\n\" +\n \"tcpi_rto: \" + tcpi.getTcpiRto() + \"\\n\" +\n \"tcpi_ato: \" + tcpi.getTcpiAto() + \"\\n\" +\n \"tcpi_snd_mss: \" + tcpi.getTcpiSndMss() + \"\\n\" +\n \"tcpi_rcv_mss: \" + tcpi.getTcpiRcvMss() + \"\\n\" +\n \"tcpi_unacked: \" + tcpi.getTcpiUnacked() + \"\\n\" +\n \"tcpi_sacked: \" + tcpi.getTcpiSacked() + \"\\n\" +\n \"tcpi_lost: \" + tcpi.getTcpiLost() + \"\\n\" +\n \"tcpi_retrans: \" + tcpi.getTcpiRetrans() + \"\\n\" +\n \"tcpi_fackets: \" + tcpi.getTcpiFackets() + \"\\n\" +\n \"tcpi_last_data_sent: \" + tcpi.getTcpiLastDataSent() + \"\\n\" +\n \"tcpi_last_ack_sent: \" + tcpi.getTcpiLastAckSent() + \"\\n\" +\n \"tcpi_last_data_recv: \" + tcpi.getTcpiLastDataRecv() + \"\\n\" +\n \"tcpi_last_ack_recv: \" + tcpi.getTcpiLastAckRecv() + \"\\n\" +\n \"tcpi_pmtu: \" + tcpi.getTcpiPmtu() + \"\\n\" +\n \"tcpi_rcv_ssthresh: \" + tcpi.getTcpiRcvSsthresh() + \"\\n\" +\n \"tcpi_rtt: \" + tcpi.getTcpiRtt() + \"\\n\" +\n \"tcpi_rttvar: \" + tcpi.getTcpiRttvar() + \"\\n\" +\n \"tcpi_snd_ssthresh: \" + tcpi.getTcpiSndSsthresh() + \"\\n\" +\n \"tcpi_snd_cwnd: \" + tcpi.getTcpiSndCwnd() + \"\\n\" +\n \"tcpi_advmss: \" + tcpi.getTcpiAdvmss() + \"\\n\" +\n \"tcpi_reordering: \" + tcpi.getTcpiReordering() + \"\\n\";\n }\n};\n\nexport function protoAnyToStringHelper(packedAny: any): string {\n if (packedAny.getTypeUrl() in protoAnyToStringHelpers) {\n return protoAnyToStringHelpers[packedAny.getTypeUrl()](packedAny);\n } else {\n return \"Unrecognized Any type: \" + packedAny.getTypeUrl();\n }\n}\n\nexport class TraceEvent {\n constructor(\n public combinedDetails: string,\n public channelRef: any,\n public subchannelRef: any) {}\n}\n\nexport function traceEventHelper(events: any[]): TraceEvent[] {\n return events.map((evt: any) => {\n return new TraceEvent(\n channelTraceEventData(evt),\n evt.getChannelRef(),\n evt.getSubchannelRef()\n )});\n}\n\n// Registers a handler that can take a google.protobuf.Any for the given\n// typeUrl and returns a human friendly string.\nexport function registerProtoAnyToStringFn(\n typeUrl: string,\n fn: (protoAny: any) => string): void {\n protoAnyToStringHelpers[typeUrl] = fn;\n}\n\nfunction protoEnumToString(enumClass, enumVal) {\n return Object.keys(enumClass).find(k => enumClass[k] === enumVal);\n}\n\nexport function channelTraceSummary(ct: any): string {\n if (ct == null) {\n return \"None\"\n }\n return `events logged: ${ct.getNumEventsLogged()}\nchannel creation timestamp: ${DateFromProto.transform(ct.getCreationTimestamp())}`;\n}\n\nexport function channelTraceEventData(evt: any): string {\n if (evt == null) {\n return \"undefined\"\n }\n const timestamp = DateFromProto.transform(evt.getTimestamp());\n const description = evt.getDescription();\n const sev = protoEnumToString(\n proto.grpc.channelz.v1.ChannelTraceEvent.Severity,\n evt.getSeverity());\n return `${timestamp} ${sev} ${description}`;\n}\n\nexport function channelDataHelper(channelData: any): string {\n return `state: ${protoEnumToString(proto.grpc.channelz.v1.ChannelConnectivityState.State, channelData.getState().getState())}\ntarget: ${channelData.getTarget()}\ncalls started: ${channelData.getCallsStarted()}\ncalls succeeded: ${channelData.getCallsSucceeded()}\ncalls failed: ${channelData.getCallsFailed()}\nlast call started: ${DateFromProto.transform(channelData.getLastCallStartedTimestamp())}`;\n}\n\n@Pipe({name: 'dateFromProto'})\nexport class DateFromProto implements PipeTransform {\n transform(protodate: any): string {\n return DateFromProto.transform(protodate);\n }\n\n static transform(protodate: any): string {\n if (protodate == null) {\n return \"undefined\"\n }\n // the 0 is required to set the initial date to unix epoch\n const date = new Date(0);\n date.setUTCSeconds(protodate.getSeconds());\n date.setUTCMilliseconds(protodate.getNanos() / 1000000.0);\n return date.toISOString();\n }\n}\n\n@Pipe({name: 'addrToString'})\nexport class AddrToString implements PipeTransform {\n transform(value: any): string {\n return AddrToString.transform(value);\n }\n\n static transform(addr: any): string {\n if (addr == null) {\n return \"undefined\"\n } else if (addr.getUdsAddress() != null) {\n return addr.getUdsAddress();\n } else if (addr.getOtherAddress() != null) {\n return protoAnyToStringHelper(addr.getOtherAddress().getValue());\n } else {\n const tcpAddrPort = addr.getTcpipAddress();\n const tcpAddr = tcpAddrPort.getIpAddress();\n if (tcpAddr.length === 4) {\n // ipv4: turn bytes into decimal form\n return tcpAddr\n .join(\".\") + \":\" + tcpAddrPort.getPort();\n } else if (tcpAddr.length === 16) {\n // ipv6: turn bytes into hex, pad with a 0 so always 2 digits long\n const hex = tcpAddr\n .map((c: number) => (\"0\" + c.toString(16)).substr(-2))\n .join(\"\");\n // use regex to split into 4 character chunks\n return \"[\" + hex.match(/..../g).join(\":\") + \"]:\" + tcpAddrPort.getPort();\n }\n }\n }\n}\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n // window.location.origin is the reverse proxy that both serves the\n // app and performs grpc-web translation\n grpcRemoteAddr: window.location.origin,\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\n// this file differs with internal, must use instead:\n// import { AppModuleNgFactory } from './app/app.module.ngfactory';\n// platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)\n// .catch((err: any) => console.log(err));\n\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch((err: any) => console.log(err));\n"],"sourceRoot":""} \ No newline at end of file diff --git a/gdebug/docker/static-assets/dist_channelz/polyfills.js b/gdebug/docker/static-assets/dist_channelz/polyfills.js index 0e9029c..86107cb 100644 --- a/gdebug/docker/static-assets/dist_channelz/polyfills.js +++ b/gdebug/docker/static-assets/dist_channelz/polyfills.js @@ -5472,7 +5472,7 @@ __webpack_require__.r(__webpack_exports__); /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! /usr/local/google/home/spencerfang/git/grpc-experiments/grpc-zpages/web/channelzui/src/polyfills.ts */"./src/polyfills.ts"); +module.exports = __webpack_require__(/*! /home/spencerfang/git/grpc-experiments/gdebug/web/channelzui/src/polyfills.ts */"./src/polyfills.ts"); /***/ }) diff --git a/gdebug/docker/static-assets/dist_channelz/scripts.js b/gdebug/docker/static-assets/dist_channelz/scripts.js index e1bf675..45f7335 100644 --- a/gdebug/docker/static-assets/dist_channelz/scripts.js +++ b/gdebug/docker/static-assets/dist_channelz/scripts.js @@ -4,8 +4,18 @@ $jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(".");for(d=0 $jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(a){var b=$jscomp.checkStringArgs(this,null,"repeat");if(0>a||1342177279>>=1)b+=b;return d}},"es6","es3");$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e=e}},"es6","es3"); -$jscomp.polyfill("String.prototype.startsWith",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,"startsWith");a+="";var e=b.length,f=a.length;c=Math.max(0,Math.min(c|0,b.length));for(var g=0;g=f}},"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return"string"==typeof a};goog.isBoolean=function(a){return"boolean"==typeof a}; -goog.isNumber=function(a){return"number"==typeof a};goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}}; +$jscomp.polyfill("String.prototype.startsWith",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,"startsWith");a+="";var e=b.length,f=a.length;c=Math.max(0,Math.min(c|0,b.length));for(var g=0;g=f}},"es6","es3");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)}; +$jscomp.Symbol=function(){var a=0;return function(b){return $jscomp.SYMBOL_PREFIX+(b||"")+a++}}();$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}}; +$jscomp.initSymbolAsyncIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.asyncIterator;a||(a=$jscomp.global.Symbol.asyncIterator=$jscomp.global.Symbol("asyncIterator"));$jscomp.initSymbolAsyncIterator=function(){}};$jscomp.arrayIterator=function(a){var b=0;return $jscomp.iteratorPrototype(function(){return b");return!0}return!1},goog.DebugLoader.prototype.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")},goog.DebugLoader.prototype.onScriptLoad_=function(a,b){"complete"==a.readyState&&this.lastNonModuleScriptIndex_==b&&this.loadQueuedModules_();return!0},goog.DebugLoader.prototype.getPathFromDeps_=function(a){return a in this.dependencies_.nameToPath?this.dependencies_.nameToPath[a]:null},goog.DebugLoader.prototype.getTranspiler=function(){return goog.transpiler_}, goog.DebugLoader.prototype.isProvided=function(a){return goog.isProvided_(a)},goog.DebugLoader.prototype.inHtmlDocument=function(){return goog.inHtmlDocument_()},goog.DebugLoader.prototype.logToConsole=function(a){goog.logToConsole_(a)},goog.DebugLoader.prototype.loadFileSync=function(a){return goog.loadFileSync_(a)},goog.DebugLoader.prototype.normalizePath=function(a){return goog.normalizePath_(a)},goog.debugLoader_=null,goog.registerDebugLoader=function(a){if(goog.debugLoader_)throw Error("Debug loader already registered!"); if(!(a instanceof goog.DebugLoader))throw Error("Not a goog.DebugLoader.");goog.debugLoader_=a},goog.getLoader_=function(){if(!goog.debugLoader_&&goog.DEBUG_LOADER)throw Error("Loaded debug loader file but no loader was registered!");goog.debugLoader_||(goog.debugLoader_=new goog.DebugLoader);return goog.debugLoader_},function(){if(goog.DEBUG_LOADER){var a=new goog.DebugLoader;a.importScript_(goog.basePath+goog.DEBUG_LOADER)}goog.global.CLOSURE_NO_DEPS||(a=a||new goog.DebugLoader,goog.DEBUG_LOADER|| -goog.registerDebugLoader(a),a.importScript_(goog.basePath+"deps.js"))}());var grpc={web:{}},module$contents$grpc$web$ClientReadableStream_ClientReadableStream=function(){};module$contents$grpc$web$ClientReadableStream_ClientReadableStream.prototype.on=goog.abstractMethod;module$contents$grpc$web$ClientReadableStream_ClientReadableStream.prototype.cancel=goog.abstractMethod;grpc.web.ClientReadableStream=module$contents$grpc$web$ClientReadableStream_ClientReadableStream;var module$contents$grpc$web$Error_Error;grpc.web.Error=module$contents$grpc$web$Error_Error;var module$contents$grpc$web$AbstractClientBase_AbstractClientBase=function(){};module$contents$grpc$web$AbstractClientBase_AbstractClientBase.MethodInfo=function(a,b,c){this.responseType=a;this.requestSerializeFn=b;this.responseDeserializeFn=c};module$contents$grpc$web$AbstractClientBase_AbstractClientBase.prototype.rpcCall=goog.abstractMethod;module$contents$grpc$web$AbstractClientBase_AbstractClientBase.prototype.serverStreaming=goog.abstractMethod;grpc.web.AbstractClientBase=module$contents$grpc$web$AbstractClientBase_AbstractClientBase;goog.net={};goog.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};goog.net.streams={};goog.net.streams.StreamParser=function(){};goog.net.streams.StreamParser.prototype.isInputValid=goog.abstractMethod;goog.net.streams.StreamParser.prototype.getErrorMessage=goog.abstractMethod;goog.net.streams.StreamParser.prototype.parse=goog.abstractMethod;goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))}; +goog.registerDebugLoader(a),a.importScript_(goog.basePath+"deps.js"))}());var grpc={web:{}},module$contents$grpc$web$ClientReadableStream_ClientReadableStream=function(){};module$contents$grpc$web$ClientReadableStream_ClientReadableStream.prototype.on=goog.abstractMethod;module$contents$grpc$web$ClientReadableStream_ClientReadableStream.prototype.cancel=goog.abstractMethod;grpc.web.ClientReadableStream=module$contents$grpc$web$ClientReadableStream_ClientReadableStream;var module$contents$grpc$web$Error_Error;grpc.web.Error=module$contents$grpc$web$Error_Error;var module$contents$grpc$web$AbstractClientBase_AbstractClientBase=function(){};module$contents$grpc$web$AbstractClientBase_AbstractClientBase.MethodInfo=function(a,b,c){this.responseType=a;this.requestSerializeFn=b;this.responseDeserializeFn=c};module$contents$grpc$web$AbstractClientBase_AbstractClientBase.prototype.rpcCall=goog.abstractMethod;module$contents$grpc$web$AbstractClientBase_AbstractClientBase.prototype.serverStreaming=goog.abstractMethod;grpc.web.AbstractClientBase=module$contents$grpc$web$AbstractClientBase_AbstractClientBase;goog.net={};goog.net.ErrorCode={NO_ERROR:0,ACCESS_DENIED:1,FILE_NOT_FOUND:2,FF_SILENT_ERROR:3,CUSTOM_ERROR:4,EXCEPTION:5,HTTP_ERROR:6,ABORT:7,TIMEOUT:8,OFFLINE:9}; +goog.net.ErrorCode.getDebugMessage=function(a){switch(a){case goog.net.ErrorCode.NO_ERROR:return"No Error";case goog.net.ErrorCode.ACCESS_DENIED:return"Access denied to content document";case goog.net.ErrorCode.FILE_NOT_FOUND:return"File not found";case goog.net.ErrorCode.FF_SILENT_ERROR:return"Firefox silently errored";case goog.net.ErrorCode.CUSTOM_ERROR:return"Application custom error";case goog.net.ErrorCode.EXCEPTION:return"An exception occurred";case goog.net.ErrorCode.HTTP_ERROR:return"Http response at 400 or 500 level"; +case goog.net.ErrorCode.ABORT:return"Request was aborted";case goog.net.ErrorCode.TIMEOUT:return"Request timed out";case goog.net.ErrorCode.OFFLINE:return"The resource is not available offline";default:return"Unrecognized error code"}};goog.net.EventType={COMPLETE:"complete",SUCCESS:"success",ERROR:"error",ABORT:"abort",READY:"ready",READY_STATE_CHANGE:"readystatechange",TIMEOUT:"timeout",INCREMENTAL_DATA:"incrementaldata",PROGRESS:"progress",DOWNLOAD_PROGRESS:"downloadprogress",UPLOAD_PROGRESS:"uploadprogress"};goog.net.streams={};goog.net.streams.StreamParser=function(){};goog.net.streams.StreamParser.prototype.isInputValid=goog.abstractMethod;goog.net.streams.StreamParser.prototype.getErrorMessage=goog.abstractMethod;goog.net.streams.StreamParser.prototype.parse=goog.abstractMethod;goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:"\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))}; goog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")}; @@ -216,7 +228,7 @@ goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare goog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){var a=goog.global.document,b=goog.userAgent.getDocumentMode_();if(a&&goog.userAgent.IE)return b||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5)}();goog.debug.LOGGING_ENABLED=goog.DEBUG;goog.debug.FORCE_SLOPPY_STACKS=!1;goog.debug.catchErrors=function(a,b,c){c=c||goog.global;var d=c.onerror,e=!!b;goog.userAgent.WEBKIT&&!goog.userAgent.isVersionOrHigher("535.3")&&(e=!e);c.onerror=function(b,c,h,k,l){d&&d(b,c,h,k,l);a({message:b,fileName:c,line:h,lineNumber:h,col:k,error:l});return e}}; goog.debug.expose=function(a,b){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var c=[],d;for(d in a)if(b||!goog.isFunction(a[d])){var e=d+" = ";try{e+=a[d]}catch(f){e+="*** "+f+" ***"}c.push(e)}return c.join("\n")}; goog.debug.deepExpose=function(a,b){var c=[],d=[],e={},f=function(a,h){var g=h+" ";try{if(goog.isDef(a))if(goog.isNull(a))c.push("NULL");else if(goog.isString(a))c.push('"'+a.replace(/\n/g,"\n"+h)+'"');else if(goog.isFunction(a))c.push(String(a).replace(/\n/g,"\n"+h));else if(goog.isObject(a)){goog.hasUid(a)||d.push(a);var l=goog.getUid(a);if(e[l])c.push("*** reference loop detected (id="+l+") ***");else{e[l]=!0;c.push("{");for(var m in a)if(b||!goog.isFunction(a[m]))c.push("\n"),c.push(g),c.push(m+ -" = "),f(a[m],g);c.push("\n"+h+"}");delete e[l]}}else c.push(a);else c.push("undefined")}catch(n){c.push("*** "+n+" ***")}};f(a,"");for(a=0;a>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}}; goog.crypt.base64.init_=function(){if(!goog.crypt.base64.byteToCharMap_){goog.crypt.base64.byteToCharMap_={};goog.crypt.base64.charToByteMap_={};goog.crypt.base64.byteToCharMapWebSafe_={};for(var a=0;a=goog.crypt.base64.ENCODED_VALS_BASE.length&& -(goog.crypt.base64.charToByteMap_[goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a)]=a)}};goog.net.streams.NodeReadableStream=function(){};goog.net.streams.NodeReadableStream.EventType={READABLE:"readable",DATA:"data",END:"end",CLOSE:"close",ERROR:"error"};goog.net.streams.NodeReadableStream.prototype.on=goog.abstractMethod;goog.net.streams.NodeReadableStream.prototype.addListener=goog.abstractMethod;goog.net.streams.NodeReadableStream.prototype.removeListener=goog.abstractMethod;goog.net.streams.NodeReadableStream.prototype.once=goog.abstractMethod;grpc.web.GenericTransportInterface={};var module$contents$grpc$web$GrpcWebClientReadableStream_GRPC_STATUS="grpc-status",module$contents$grpc$web$GrpcWebClientReadableStream_GRPC_STATUS_MESSAGE="grpc-message",module$contents$grpc$web$GrpcWebClientReadableStream_GrpcWebClientReadableStream=function(a){this.xhr_=a.xhr;this.onEndCallback_=this.onStatusCallback_=this.onDataCallback_=this.responseDeserializeFn_=null;this.pos_=0;this.parser_=new module$contents$grpc$web$GrpcWebStreamParser_GrpcWebStreamParser;var b=this;goog.events.listen(this.xhr_, -goog.net.EventType.READY_STATE_CHANGE,function(a){a=module$contents$grpc$web$GrpcWebStreamParser_GrpcWebStreamParser.FrameType;var c=b.xhr_.getResponseText(),e=c.length-c.length%4;c=c.substr(b.pos_,e-b.pos_);if(0!=c.length&&(b.pos_=e,e=goog.crypt.base64.decodeStringToUint8Array(c),e=b.parser_.parse([].slice.call(e)))){for(c=0;c>>=8;d.set(new Uint8Array(c),1);d.set(a,5);return d};grpc.web.GrpcWebClientBase=module$contents$grpc$web$GrpcWebClientBase_GrpcWebClientBase;var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31};jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5}; +(goog.crypt.base64.charToByteMap_[goog.crypt.base64.ENCODED_VALS_WEBSAFE.charAt(a)]=a)}};goog.net.streams.NodeReadableStream=function(){};goog.net.streams.NodeReadableStream.EventType={READABLE:"readable",DATA:"data",END:"end",CLOSE:"close",ERROR:"error"};goog.net.streams.NodeReadableStream.prototype.on=goog.abstractMethod;goog.net.streams.NodeReadableStream.prototype.addListener=goog.abstractMethod;goog.net.streams.NodeReadableStream.prototype.removeListener=goog.abstractMethod;goog.net.streams.NodeReadableStream.prototype.once=goog.abstractMethod;grpc.web.GenericTransportInterface={};grpc.web.Status={};var module$contents$grpc$web$GrpcWebClientReadableStream_GRPC_STATUS="grpc-status",module$contents$grpc$web$GrpcWebClientReadableStream_GRPC_STATUS_MESSAGE="grpc-message",module$contents$grpc$web$GrpcWebClientReadableStream_GrpcWebClientReadableStream=function(a){this.xhr_=a.xhr;this.onEndCallback_=this.onErrorCallback_=this.onStatusCallback_=this.onDataCallback_=this.responseDeserializeFn_=null;this.pos_=0;this.parser_=new module$contents$grpc$web$GrpcWebStreamParser_GrpcWebStreamParser;var b=this; +goog.events.listen(this.xhr_,goog.net.EventType.READY_STATE_CHANGE,function(a){if(a=b.xhr_.getStreamingResponseHeader("Content-Type")){a=a.toLowerCase();if(goog.string.startsWith(a,"application/grpc-web-text")){var c=b.xhr_.getResponseText();a=c.length-c.length%4;c=c.substr(b.pos_,a-b.pos_);if(0==c.length)return;b.pos_=a;a=goog.crypt.base64.decodeStringToUint8Array(c)}else if(goog.string.startsWith(a,"application/grpc"))a=new Uint8Array(b.xhr_.getResponse());else return;if(a=b.parser_.parse([].slice.call(a))){c= +module$contents$grpc$web$GrpcWebStreamParser_GrpcWebStreamParser.FrameType;for(var e=0;ea)throw Error("Bad port number "+a);this.port_=a}else this.port_=null;return this};goog.Uri.prototype.hasPort=function(){return null!=this.port_};goog.Uri.prototype.getPath=function(){return this.path_};goog.Uri.prototype.setPath=function(a,b){this.enforceReadOnly();this.path_=b?goog.Uri.decodeOrEmpty_(a,!0):a;return this};goog.Uri.prototype.hasPath=function(){return!!this.path_}; +goog.Uri.prototype.hasQuery=function(){return""!==this.queryData_.toString()};goog.Uri.prototype.setQueryData=function(a,b){this.enforceReadOnly();a instanceof goog.Uri.QueryData?(this.queryData_=a,this.queryData_.setIgnoreCase(this.ignoreCase_)):(b||(a=goog.Uri.encodeSpecialChars_(a,goog.Uri.reDisallowedInQuery_)),this.queryData_=new goog.Uri.QueryData(a,null,this.ignoreCase_));return this};goog.Uri.prototype.setQuery=function(a,b){return this.setQueryData(a,b)}; +goog.Uri.prototype.getEncodedQuery=function(){return this.queryData_.toString()};goog.Uri.prototype.getDecodedQuery=function(){return this.queryData_.toDecodedString()};goog.Uri.prototype.getQueryData=function(){return this.queryData_};goog.Uri.prototype.getQuery=function(){return this.getEncodedQuery()};goog.Uri.prototype.setParameterValue=function(a,b){this.enforceReadOnly();this.queryData_.set(a,b);return this}; +goog.Uri.prototype.setParameterValues=function(a,b){this.enforceReadOnly();goog.isArray(b)||(b=[String(b)]);this.queryData_.setValues(a,b);return this};goog.Uri.prototype.getParameterValues=function(a){return this.queryData_.getValues(a)};goog.Uri.prototype.getParameterValue=function(a){return this.queryData_.get(a)};goog.Uri.prototype.getFragment=function(){return this.fragment_};goog.Uri.prototype.setFragment=function(a,b){this.enforceReadOnly();this.fragment_=b?goog.Uri.decodeOrEmpty_(a):a;return this}; +goog.Uri.prototype.hasFragment=function(){return!!this.fragment_};goog.Uri.prototype.hasSameDomainAs=function(a){return(!this.hasDomain()&&!a.hasDomain()||this.getDomain()==a.getDomain())&&(!this.hasPort()&&!a.hasPort()||this.getPort()==a.getPort())};goog.Uri.prototype.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};goog.Uri.prototype.removeParameter=function(a){this.enforceReadOnly();this.queryData_.remove(a);return this}; +goog.Uri.prototype.setReadOnly=function(a){this.isReadOnly_=a;return this};goog.Uri.prototype.isReadOnly=function(){return this.isReadOnly_};goog.Uri.prototype.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};goog.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a);return this};goog.Uri.prototype.getIgnoreCase=function(){return this.ignoreCase_}; +goog.Uri.parse=function(a,b){return a instanceof goog.Uri?a.clone():new goog.Uri(a,b)};goog.Uri.create=function(a,b,c,d,e,f,g,h){h=new goog.Uri(null,h);a&&h.setScheme(a);b&&h.setUserInfo(b);c&&h.setDomain(c);d&&h.setPort(d);e&&h.setPath(e);f&&h.setQueryData(f);g&&h.setFragment(g);return h};goog.Uri.resolve=function(a,b){a instanceof goog.Uri||(a=goog.Uri.parse(a));b instanceof goog.Uri||(b=goog.Uri.parse(b));return a.resolve(b)}; +goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(goog.string.contains(a,"./")||goog.string.contains(a,"/.")){var b=goog.string.startsWith(a,"/");a=a.split("/");for(var c=[],d=0;d>4&15).toString(16)+(a&15).toString(16)};goog.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[#\?:]/g;goog.Uri.reDisallowedInAbsolutePath_=/[#\?]/g; +goog.Uri.reDisallowedInQuery_=/[#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;goog.Uri.haveSameDomain=function(a,b){a=goog.uri.utils.split(a);b=goog.uri.utils.split(b);return a[goog.uri.utils.ComponentIndex.DOMAIN]==b[goog.uri.utils.ComponentIndex.DOMAIN]&&a[goog.uri.utils.ComponentIndex.PORT]==b[goog.uri.utils.ComponentIndex.PORT]};goog.Uri.QueryData=function(a,b,c){this.count_=this.keyMap_=null;this.encodedQuery_=a||null;this.ignoreCase_=!!c}; +goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new goog.structs.Map,this.count_=0,this.encodedQuery_)){var a=this;goog.uri.utils.parseQueryData(this.encodedQuery_,function(b,c){a.add(goog.string.urlDecode(b),c)})}}; +goog.Uri.QueryData.createFromMap=function(a,b,c){b=goog.structs.getKeys(a);if("undefined"==typeof b)throw Error("Keys are undefined");c=new goog.Uri.QueryData(null,null,c);a=goog.structs.getValues(a);for(var d=0;d>>=8;d.set(new Uint8Array(c),1);d.set(a,5);return d}; +module$contents$grpc$web$GrpcWebClientBase_GrpcWebClientBase.setCorsOverride_=function(a,b){return module$exports$goog$net$rpc$HttpCors.setHttpHeadersWithOverwriteParam(a,module$exports$goog$net$rpc$HttpCors.HTTP_HEADERS_PARAM_NAME,b)};grpc.web.GrpcWebClientBase=module$contents$grpc$web$GrpcWebClientBase_GrpcWebClientBase;var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31};jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5}; jspb.BinaryConstants.FieldTypeToWireType=function(a){var b=jspb.BinaryConstants.FieldType,c=jspb.BinaryConstants.WireType;switch(a){case b.INT32:case b.INT64:case b.UINT32:case b.UINT64:case b.SINT32:case b.SINT64:case b.BOOL:case b.ENUM:case b.VHASH64:return c.VARINT;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:case b.FHASH64:return c.FIXED64;case b.STRING:case b.MESSAGE:case b.BYTES:return c.DELIMITED;case b.FLOAT:case b.FIXED32:case b.SFIXED32:return c.FIXED32;default:return c.INVALID}}; jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1;jspb.BinaryConstants.FLOAT32_EPS=1.401298464324817E-45;jspb.BinaryConstants.FLOAT32_MIN=1.1754943508222875E-38;jspb.BinaryConstants.FLOAT32_MAX=3.4028234663852886E38;jspb.BinaryConstants.FLOAT64_EPS=4.9E-324;jspb.BinaryConstants.FLOAT64_MIN=2.2250738585072014E-308;jspb.BinaryConstants.FLOAT64_MAX=1.7976931348623157E308;jspb.BinaryConstants.TWO_TO_20=1048576;jspb.BinaryConstants.TWO_TO_23=8388608;jspb.BinaryConstants.TWO_TO_31=2147483648; jspb.BinaryConstants.TWO_TO_32=4294967296;jspb.BinaryConstants.TWO_TO_52=4503599627370496;jspb.BinaryConstants.TWO_TO_63=0x7fffffffffffffff;jspb.BinaryConstants.TWO_TO_64=1.8446744073709552E19;jspb.BinaryConstants.ZERO_HASH="\x00\x00\x00\x00\x00\x00\x00\x00";jspb.utils={};jspb.utils.split64Low=0;jspb.utils.split64High=0;jspb.utils.splitUint64=function(a){var b=a>>>0;a=Math.floor((a-b)/jspb.BinaryConstants.TWO_TO_32)>>>0;jspb.utils.split64Low=b;jspb.utils.split64High=a};jspb.utils.splitInt64=function(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/jspb.BinaryConstants.TWO_TO_32);a>>>=0;b&&(a=~a>>>0,c=(~c>>>0)+1,4294967295a||1342177279>>=1)b+=b;return d}},\"es6\",\"es3\");$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e=e}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.startsWith\",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,\"startsWith\");a+=\"\";var e=b.length,f=a.length;c=Math.max(0,Math.min(c|0,b.length));for(var g=0;g=f}},\"es6\",\"es3\");var COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.isString=function(a){return\"string\"==typeof a};goog.isBoolean=function(a){return\"boolean\"==typeof a};\ngoog.isNumber=function(a){return\"number\"==typeof a};goog.exportPath_=function(a,b,c){a=a.split(\".\");c=c||goog.global;a[0]in c||!c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}};\ngoog.define=function(a,b){COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&void 0===goog.global.CLOSURE_UNCOMPILED_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?b=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&void 0===goog.global.CLOSURE_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(b=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,b)};goog.DEBUG=!0;goog.LOCALE=\"en\";\ngoog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(a){if(goog.isInModuleLoader_())throw Error(\"goog.provide can not be used within a goog.module.\");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');goog.constructNamespace_(a)};\ngoog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(\".\")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\ngoog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error(\"Invalid module identifier\");if(!goog.isInModuleLoader_())throw Error(\"Module \"+a+\" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.\");if(goog.moduleLoaderState_.moduleName)throw Error(\"goog.module may only be called once per module.\");\ngoog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a];if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.moduleLoaderState_=null;\ngoog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error(\"goog.module.declareLegacyNamespace must be called from within a goog.module\");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error(\"goog.module must be called prior to goog.module.declareLegacyNamespace.\");goog.moduleLoaderState_.declareLegacyNamespace=!0};\ngoog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||\"\",Error(\"Importing test-only code into non-debug environment\"+(a?\": \"+a:\".\"));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={\"goog.module\":!0});\ngoog.getObjectByName=function(a,b){a=a.split(\".\");b=b||goog.global;for(var c=0;c>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;\ngoog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(a.clone)return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};\ngoog.bindJs_=function(a,b,c){if(!a)throw Error();if(2Number(a[1])?!1:b('(()=>{\"use strict\";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});a(\"es6-impl\",function(){return!0});a(\"es7\",function(){return b(\"2 ** 2 == 4\")});a(\"es8\",function(){return b(\"async () => 1, true\")});return c},goog.Transpiler.prototype.needsTranspile=\nfunction(a){if(\"always\"==goog.TRANSPILE)return!0;if(\"never\"==goog.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a];throw Error(\"Unknown language mode: \"+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b)},goog.transpiler_=new goog.Transpiler,goog.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},\nwritten:{},deferred:{}};this.oldIeWaiting_=!1;this.queuedModules_=[];this.lastNonModuleScriptIndex_=0},goog.DebugLoader.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader.prototype.earlyProcessLoad=function(a){goog.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(a)},goog.DebugLoader.prototype.load=function(a){var b=this.getPathFromDeps_(a);if(b){var c=function(a){if(!(a in f.written||a in f.visited)){f.visited[a]=!0;if(a in f.requires)for(var b in f.requires[a])if(!g.isProvided(b))if(b in\nf.nameToPath)c(f.nameToPath[b]);else throw Error(\"Undefined nameToPath for \"+b);a in e||(e[a]=!0,d.push(a))}},d=[],e={},f=this.dependencies_,g=this;c(b);for(a=0;a\\x3c/script>')},goog.DebugLoader.prototype.appendScriptSrcNode_=function(a){var b=goog.global.document,c=b.createElement(\"script\");c.type=\"text/javascript\";c.src=a;c.defer=!1;c.async=!1;b.head.appendChild(c)},goog.DebugLoader.prototype.writeScriptTag_=function(a,b){if(this.inHtmlDocument()){var c=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&\n\"complete\"==c.readyState){if(/\\bdeps.js$/.test(a))return!1;throw Error('Cannot write \"'+a+'\" after document load');}void 0===b?goog.DebugLoader.IS_OLD_IE_?(this.oldIeWaiting_=!0,b=\" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, \"+ ++this.lastNonModuleScriptIndex_+\")' \",c.write('