cupti

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2021 License: NCSA Imports: 38 Imported by: 5

README

go-cupti

Build Status

Go binding to NVIDIA CUPTI, the CUDA Performance Tool Interface.

Example

The callback functions are publised to a tracing server. You need to have a carml_config.yml and the tracing server running to see the spans. Refer to CarML Config and Starting Tracer Server

Make sure /usr/local/cuda/lib64 and /usr/local/cuda/extras/CUPTI/lib64 are in your LD_LIBRARY_PATH.

cd examples/vector_add
make
cd ../cupti
go run main.go

Then go to TRACER_URL:16686 to see the spans

Note: The CGO interface passes go pointers to the C API. This is an error by the CGO runtime. If you get the following error

panic: runtime error: cgo argument has Go pointer to Go pointer

Then you need to place

export GODEBUG=cgocheck=0

in your ~/.bashrc or ~/.zshrc file and then run either source ~/.bashrc or source ~/.zshrc.

References

The CUDA Profiling Tools Interface (CUPTI) enables the creation of profiling and tracing tools that target CUDA applications. CUPTI provides four APIs: the Activity API, the Callback API, the Event API, and the Metric API.

  1. The CUPTI Activity API allows you to asynchronously collect a trace of an application's CPU and GPU CUDA activity.
  • Activity Record. CPU and GPU activity is reported in C data structures called activity records.
  • Activity Buffer. An activity buffer is used to transfer one or more activity records from CUPTI to the client. An asynchronous buffering API is implemented by cuptiActivityRegisterCallbacks and cuptiActivityFlushAll.
  1. The CUPTI Callback API allows you to register a callback into your own code. Your callback will be invoked when the application being profiled calls a CUDA runtime or driver function, or when certain events occur in the CUDA driver.
  • Callback Domain.
  • Callback ID. Each callback is given a unique ID within the corresponding callback domain so that you can identify it within your callback function.
  • Callback Function Your callback function must be of type CUpti_CallbackFunc. This function type has two arguments that specify the callback domain and ID so that you know why the callback is occurring. The type also has a cbdata argument that is used to pass data specific to the callback.
  • Subscriber. A subscriber is used to associate each of your callback functions with one or more CUDA API functions. There can be at most one subscriber initialized with cuptiSubscribe() at any time. Before initializing a new subscriber, the existing subscriber must be finalized with cuptiUnsubscribe().
  1. The CUPTI Event API allows you to query, configure, start, stop, and read the event counters on a CUDA-enabled device.
  2. The CUPTI Metric API allows you to collect application metrics calculated from one or more event values.

Documentation

Index

Constants

View Source
const (
	BUFFER_SIZE = 32 * 1024
	ALIGN_SIZE  = 8
)

Variables

View Source
var (
	// CTX is a context for webdav vfs
	CTX = context.Background()

	// FS is a virtual memory file system
	FS = webdav.NewMemFS()

	// Handler is used to server files through a http handler
	Handler *webdav.Handler

	// HTTP is the http file system
	HTTP http.FileSystem = new(HTTPFS)
)
View Source
var (
	DefaultCUPTILibraryPath string
	DefaultCUDALibraryPath  string
)
View Source
var AvailableEvents events = nil
View Source
var AvailableMetrics metrics = nil
View Source
var (
	Config = &cuptiConfig{
		done: make(chan struct{}),
	}
)
View Source
var DefaultActivities = []string{
	"CUPTI_ACTIVITY_KIND_MEMCPY",

	"CUPTI_ACTIVITY_KIND_KERNEL",

	"CUPTI_ACTIVITY_KIND_OVERHEAD",
}
View Source
var (
	DefaultCallbacks = []string{

		"CUPTI_DRIVER_TRACE_CBID_cuMemcpyDtoH_v2",
		"CUPTI_DRIVER_TRACE_CBID_cuMemcpyDtoHAsync_v2",
		"CUPTI_DRIVER_TRACE_CBID_cuMemcpyHtoD_v2",
		"CUPTI_DRIVER_TRACE_CBID_cuMemcpyHtoDAsync_v2",
		"CUPTI_DRIVER_TRACE_CBID_cuMemcpyDtoD_v2",
		"CUPTI_DRIVER_TRACE_CBID_cuMemcpyDtoDAsync_v2",
		"CUPTI_RUNTIME_TRACE_CBID_cudaDeviceSynchronize_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaStreamSynchronize_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMalloc_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMallocArray_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMallocHost_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaHostAlloc_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaFree_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaFreeHost_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaLaunch_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaLaunchKernel_v7000",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMemcpy_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMemcpyAsync_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaSetupArgument_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMallocManaged_v6000",
		"CUPTI_RUNTIME_TRACE_CBID_cudaMallocPitch_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaThreadSynchronize_v3020",
		"CUPTI_RUNTIME_TRACE_CBID_cudaIpcGetEventHandle_v4010",
		"CUPTI_RUNTIME_TRACE_CBID_cudaIpcOpenEventHandle_v4010",
		"CUPTI_RUNTIME_TRACE_CBID_cudaIpcGetMemHandle_v4010",
		"CUPTI_RUNTIME_TRACE_CBID_cudaIpcOpenMemHandle_v4010",
		"CUPTI_RUNTIME_TRACE_CBID_cudaIpcCloseMemHandle_v4010",
		"CUPTI_CBID_RESOURCE_CONTEXT_CREATED",
		"CUPTI_CBID_RESOURCE_CONTEXT_DESTROY_STARTING",
	}
)
View Source
var (
	DefaultDomains = []string{
		"CUPTI_CB_DOMAIN_RUNTIME_API",
		"CUPTI_CB_DOMAIN_DRIVER_API",
		"CUPTI_CB_DOMAIN_RESOURCE",
		"CUPTI_CB_DOMAIN_NVTX",
	}
)
View Source
var (
	DefaultEvents = []string{}
)
View Source
var (
	DefaultMetrics = []string{}
)
View Source
var FileEventMappingJSON = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xec\x9c\x5f\x6f\xdb\x38\x12\xc0\xdf\xfb\x29\x06\x79\xb8\xa7\x34\x10\x25\x5b\x76\xf6\x2d\xc8\xe6\x7a\x01\x9a\x76\xd1\x78\x0f\x58\x1c\x0e\x02\x2d\xd1\x96\x50\x49\xf4\x92\x74\x13\xdf\xe1\xbe\xfb\x41\x7f\xdc\xd8\xc9\x58\x26\x69\x51\x75\x81\x7d\x4c\x3c\x43\x9b\xbf\x19\x0d\x67\xc8\x11\xff\xf5\x0e\xe0\xbf\xef\x00\x00\x2e\xd8\x37\x56\xaa\x8b\x5f\x80\x5c\x36\x7f\x67\x49\xf5\x87\xe7\x85\x61\x10\x5c\x7b\xed\x3f\x13\x5e\xd0\xac\x8c\xea\xcf\x7c\xef\x7a\x42\xc6\xbe\xdf\x7e\x54\xd2\x82\x5d\xfc\x02\x17\x34\x56\xd9\x37\x16\xc5\x9b\x38\x67\x32\x5a\x15\x17\xed\xe7\x32\xe5\x42\x45\x09\x93\xb1\xc8\x56\x2a\xe3\xe5\x8b\x30\x34\xc2\xf0\x22\x9c\xf3\x72\xf9\x5a\xf6\xd3\xba\x98\x33\x01\x7c\xb1\x15\xa7\x50\xac\x73\x95\xad\x04\x8f\x99\x94\x5c\x40\x4a\x25\x50\x05\x39\xa3\x52\x01\x2f\x19\xb4\xc3\x3f\x51\xb1\xba\xda\x0e\x1d\x53\xc5\x96\x5c\x6c\xaa\x21\x6f\x7f\xff\x6d\x76\x1f\xdd\xfd\xf3\xee\xd3\x2c\xba\xbd\x99\xdd\x7d\xf8\xfc\xe5\x8f\xe8\xfe\xd3\xe3\xec\xcb\xef\xb7\xb3\xfb\xcf\x9f\x2e\xde\x01\xfc\xef\xf2\x2d\x23\x1f\x63\x44\x8c\x19\x55\xbf\x4b\x17\x51\x2d\x7b\x84\xd0\x4d\x1c\xaf\x8b\x75\x4e\x15\x4b\xa0\xfc\x4e\x6b\x7f\x00\x26\x1a\x7c\x57\xf0\x77\x2e\x80\x7d\x63\x62\xd3\xfc\x03\x32\x05\x59\x19\x0b\x56\xb0\x52\x49\x98\x6f\x40\xa5\xec\xd0\x30\x59\x59\x7f\xda\x28\x3e\xa5\x59\x9c\x42\x4c\x4b\x98\xb3\xed\x27\x82\x96\x4b\x06\x1e\x28\x0e\xe1\xa8\x57\xf6\x01\xc2\x7e\x3a\xd6\x67\x2f\x53\x2a\x58\x12\xe5\x49\xa4\x04\x2d\x65\x35\x2d\x5e\xca\x4e\x13\x74\xab\x74\xfb\xea\xae\x06\x2c\xb8\x80\x66\x30\xc8\x39\x4d\x80\xc6\x95\xe7\x32\x79\x05\x0f\xf4\x39\x2b\xd6\xc5\xae\x38\xc8\xec\x3f\x35\xcf\x6f\x3c\x57\x14\x32\x09\xc4\x9f\xc2\x7c\xa3\x98\xbc\x04\x5a\x6e\x6a\x53\xb4\x43\x64\xe5\x12\x0a\x2e\x18\xa8\x94\x96\x2f\x72\xf0\x94\xe5\x39\xc4\x74\x2d\x59\xfb\xac\xe4\xec\xed\x2f\xa2\x7b\xbf\x29\x2b\xa5\x12\xeb\xfa\xe3\x2b\x98\xa5\x99\x04\x9a\x4b\x5e\xb9\x46\xbe\x4e\x98\x04\xf6\xac\x04\xdd\x1f\xa4\xfe\x82\xa4\x72\x99\x76\xa0\x39\x2d\xbf\x42\xcc\xcb\x45\x9e\xc5\x4a\xea\x9b\xff\xf6\xe6\xf6\x1f\x77\x87\x0c\x3f\xc2\x0c\x1f\x1a\x1b\x5e\x2a\x63\xc3\x1f\x50\xb1\x33\xbc\x54\x95\x9d\xce\xcc\xf2\xcd\x8f\x3a\x5b\xd3\x8f\x11\xd3\x8f\x0c\x9e\x79\x96\xd3\x95\x64\xc9\x76\x51\x92\xdd\x11\xb7\x95\x86\x38\xe7\xf1\xd7\x4e\x6b\xe3\x92\x7d\x44\xb9\x10\x5b\x61\x7c\xeb\x19\xaf\x4c\x66\x0c\xbc\x84\xc7\x07\xfd\x79\xef\xcb\xf7\x31\xfb\x09\x36\xfb\x40\x7f\xf6\x95\x23\x47\xec\x99\xc5\x6b\xc5\x92\x68\xb1\x22\x61\xb4\xca\x56\x2c\x92\x5e\x27\x86\xe3\x6a\xdd\x8f\x7c\xfd\x58\xee\x3c\x44\xd5\x13\xd3\x0c\x56\x3d\x20\xd5\x78\x50\x8d\xd7\xf0\x02\xb9\x9e\xbf\x5f\x51\xa1\xb2\xfa\x91\xf7\x7a\x5d\x24\xa7\x18\xc0\x51\x0f\x00\x89\x1d\x40\xe2\x1e\x20\xe9\x93\xdf\x35\xc6\x6f\xdc\x03\x3f\xdf\x8e\x9f\xef\x9e\x9f\xdf\x27\x3f\xe2\x61\x00\xc3\x1e\x00\x06\x76\x00\x03\xf7\x00\x83\x5e\x01\xa2\x65\xd8\xc4\x1e\x60\x38\xb2\x0a\x81\x6f\xd5\x4e\x03\x18\x8e\x3a\x42\x60\xaf\x00\xd1\x1a\x6d\xda\x03\x40\x62\x07\x90\xb8\x07\xd8\x6b\x08\x24\x58\xa1\x75\x7d\xdd\x03\x40\xdf\x0e\xa0\xef\x1e\x60\xbf\x31\x10\x29\x58\x46\x9e\xd7\x03\xc0\xc0\x0e\x60\xe0\x1e\x60\xbf\x31\x70\x8c\x01\x24\xd6\x00\x0b\x6a\x13\x02\xdf\x6a\x9d\x84\xaf\xa0\x43\x05\xc0\x10\xa3\xe7\x9f\x4e\x8f\x58\xd1\x23\xce\xe9\xf5\x1b\xfd\x26\x18\xbd\xe0\x74\x7a\xbe\x15\x3d\xdf\x39\xbd\x7e\x43\xdf\x14\xa3\x37\x3a\x9d\x5e\x60\x45\x2f\x70\x4e\xaf\xdf\xb8\x87\x55\x1f\xd3\x89\xcd\x16\xe7\x9c\x96\x5f\xa3\xed\x6e\x4c\x27\xbb\xc7\x9d\x2d\xc0\xbd\x3d\x1c\x3d\x76\xf2\x90\x3a\x2c\x59\xc9\x44\xbd\x25\xfd\x94\xb2\x66\x73\x98\x26\x89\xa8\x77\xbf\xea\x4d\x28\xf5\xc4\x81\x8b\x66\x13\xab\x1d\xa6\x60\x05\x17\x9b\x66\x34\xc1\xfe\x5c\x33\xa9\x24\x2c\x68\x9e\x6f\xb7\x97\x25\x2d\xd8\x56\xaa\xfa\xba\x9e\xf6\x99\x7c\xac\x6c\x99\x4e\x6d\xf6\x18\x8d\xc9\x37\x5b\x70\xf6\xe8\x11\xfd\x53\xd8\x37\xc3\x0d\x0a\x9f\x60\x41\xc3\xa0\xe8\x56\xac\x94\x5c\x34\xcf\xfc\xfe\x29\xd4\x91\x15\x5f\x47\x51\xeb\x44\xea\x29\x65\x82\x41\x33\x5c\x13\x2c\x9e\xa8\xdc\x9e\x9c\xf0\x12\x1c\x2f\xf9\xbe\x8f\x11\x0c\x7b\x21\x48\x6c\x09\x12\xc7\x04\x7b\x5d\xf6\xfd\x00\x23\x38\xe9\x85\xa0\x6f\x4b\xd0\x77\x4c\xb0\xd7\xa5\xdf\x47\xab\x9e\x69\x2f\x04\x03\x5b\x82\x81\x63\x82\xfd\x2e\xff\xc8\x1a\xd4\x51\xf5\x7c\x3f\x07\xd9\x02\x5c\xcc\x23\xb9\x9e\xaf\xbc\x48\x30\x9a\x44\x92\xc5\x8a\x8b\xee\x63\xae\xc5\x1c\x6a\x0d\xa8\x34\xe0\x95\x46\x37\xb2\x5f\xbf\xdc\x3c\x34\x6a\xdf\x97\x0a\xc5\xab\xd1\x60\x27\xc6\x5d\xbe\x3a\x58\x26\xf5\xda\x13\xf8\xf5\x51\x55\x7b\x8e\xa5\xbf\x88\x3c\xdc\x3d\x7c\xfe\xf2\x87\xc9\xd1\x7c\x47\xd5\x73\x88\x1e\x31\xa6\x47\x1c\xd1\x23\x43\xd2\xc3\xf6\x7c\x3a\xaa\x9e\xc3\xbe\xf7\x24\x32\xc5\xcc\x9c\xaf\x56\xb1\xe0\xd7\xe8\x9d\x89\xfb\x61\x87\xd4\x1d\x85\xcf\x61\xf7\x33\x06\x48\x9c\x01\x1c\xd4\x03\xb1\xe8\x37\x39\xbc\x69\x36\x0e\xba\xda\x8f\x3a\xb9\xdd\xec\xf6\x1e\xb9\x6b\x3c\x72\xdd\x77\x34\x21\xc6\x70\xea\x1e\x1e\x1d\x36\x7b\x82\x7f\x75\x1c\xed\x50\x1f\x87\xfa\xd4\x57\x82\x2f\x22\x25\xb2\xe5\x92\x89\xc8\xeb\x2e\x45\x56\x45\x25\xa8\x59\x75\x34\xc2\x07\xb6\x2c\x9a\x2c\xe6\xbe\x28\x48\x08\x7f\x03\xef\xd9\xf3\xbc\x5e\x53\x65\x2c\xd2\x8d\x27\xb6\x54\x88\x06\x15\xe2\x86\x4a\xaf\xe9\x2f\xd6\xa9\x32\x9e\xda\x52\xf1\x35\xa8\xf8\x6e\xa8\x8c\x5c\x77\xb3\x8c\xaf\x6d\xa9\x04\x1a\x54\x02\x37\x54\xa6\xae\xbb\x5c\x42\xcf\x96\xca\x48\x83\xca\xc8\x09\x15\xe2\xb9\x6e\x5d\x09\x89\x2d\x95\xb1\x06\x95\xb1\x13\x2a\xbe\xe7\xba\x21\x25\xf4\x6d\xa9\x84\x1a\x54\x42\x27\x54\x46\x9e\xf3\x36\x93\x30\xb0\xc5\x32\xd1\xc0\x32\x71\x82\x65\xea\x39\x6f\x1e\x09\xc7\xfa\x58\xea\x83\x94\x4c\xca\x35\x4b\xba\xd3\x95\xfb\x97\xf9\x41\xc9\x15\x34\x3a\x46\xc9\xb4\x4a\xa9\x82\x24\x4b\x5e\xf4\xeb\x16\xd7\x1d\x72\x7b\xe5\x47\x95\x4e\xf6\xde\xcf\x8f\x36\x8b\x84\xa1\x15\x30\xa2\x0d\xcc\x16\x56\xa3\x07\x32\x2b\x97\x39\x1b\x18\x14\x96\x0b\x87\x13\x43\x50\xdb\x07\x41\x9b\xd4\x6b\x85\x6e\x56\xf8\x43\xe7\x86\x07\x96\x05\x87\x06\xf9\x9e\x4a\xeb\x7d\x26\x7d\x2c\xb3\x17\x85\x3e\xe9\xb4\xc5\x57\x5b\x72\x35\xbf\x4a\xb6\x15\x1b\x8d\xd3\x5d\xad\xb7\x65\xdb\x4b\xc9\xd6\x2a\x5e\xb6\x3d\xe3\x59\xb9\x84\x95\x60\x49\x56\xb1\x4e\xde\xf3\xc5\x8e\x44\xed\xca\xed\xf7\xd7\xdf\xbd\xd7\x7d\x7e\xaf\x20\xe1\x4c\x36\x41\xa1\xe9\x3f\x07\xc1\x56\x39\xdd\xc8\x2b\xd7\x3d\x26\x41\x68\x90\x9a\x96\x5c\x45\x2f\x53\x8c\xf8\x62\x11\x19\xdb\xf4\x13\x57\x3b\x98\xe0\x05\x13\xb8\x35\x33\x2d\x9b\xa8\x8b\x7e\xb7\x85\xf5\xf7\x86\x2d\xdf\xe3\xc3\x9e\x8b\xe1\xb1\x9a\x64\x62\x10\xc9\xea\xb3\xd5\x2c\x8e\x72\x4e\xbb\xad\xfb\xa1\x11\x84\x5d\xc1\x6e\xdb\x7d\xfc\x15\x37\x9f\xeb\x06\x97\x60\x32\x35\x9f\x7f\x7d\x50\xac\x05\x60\x4f\xb2\x9b\xc0\xe3\x6c\x00\x02\x58\xa5\x31\x35\x48\x1e\xa9\xe2\x45\x14\xf3\x75\xd9\x7d\xbe\x7f\xa3\x78\x01\x7b\x62\xdd\x73\xbf\x99\x7d\x7e\x18\x60\xf6\x68\x93\x89\x41\xe0\x5b\xe6\x7c\x4e\xf3\xa8\x81\x40\xbb\xb7\x13\x3f\xd4\xb2\x50\xc9\x5e\xc5\x54\x9a\xd2\xb8\xba\xbd\x79\x74\x4f\x04\x6f\xfe\x18\x19\x10\x11\x2c\xd1\xf0\x87\x0f\x82\x25\x26\x04\xbe\xdc\x0d\x10\x0e\x7c\x74\xdf\xdd\xdc\x1d\x8e\x47\xc3\xc6\x15\x4c\x82\xe1\x87\x01\xa6\x8f\x15\x00\x53\xcf\x78\xfa\x1a\xc1\xb0\x99\xbf\x51\x2c\x1c\x02\x00\xfa\x5a\xad\xc1\xb6\x4b\xce\x63\x1d\xf3\x7f\xac\xc4\x8c\xac\xff\x71\x80\xc9\xa3\xaf\x96\xfa\xa6\x93\x3f\x6e\xfc\x66\xf6\x46\xb6\x1f\x62\xfa\x58\x0e\x3c\x31\x98\x7e\xdb\xf5\x56\x85\x77\x9d\x4e\xb7\x5d\x39\xad\xd6\xb6\x6a\x0d\x18\x62\x01\x40\x53\xc2\x91\x15\x87\xa3\x4b\xe2\x0e\x0b\xd8\x91\xd5\xe7\x31\xd0\xa2\x88\xa6\x89\x63\x63\x26\x47\x03\xc3\x4e\xff\xa9\x6e\x64\x18\x62\xfa\x58\x8e\x38\x09\x8d\xa7\x7f\x3c\x34\xec\x76\x81\xea\xc6\x86\x21\x00\xa0\x1b\xcf\x06\xcf\x44\x73\xc7\x45\x4e\xd7\x65\x9c\x1e\x29\x83\x71\xd1\xe3\x3d\xdb\x12\x5e\xeb\x9c\xda\x05\x83\x65\x82\x13\x83\xca\x40\x16\x51\xac\xa8\xde\xac\x0f\xc8\x1e\xd9\x0e\x54\xb4\xf7\x59\xa3\x7d\x67\x87\x9f\xf4\xd1\xe4\xf5\x22\xe8\x23\xbd\x3f\x51\x91\x49\x79\xa4\x11\x23\xf7\x91\x0e\x20\xd8\x57\x3c\xe2\x05\xfb\x1d\x2c\x92\x95\x0a\x14\x6f\xba\x5b\x16\x82\x17\x20\xf3\x2c\x66\xe0\xd5\x71\xc3\x87\x98\xc6\x29\x6b\x6f\x38\xc0\x3a\x5b\xea\x3d\x8f\xc0\x7f\x6f\xd5\xde\xd2\xdd\xe3\x8c\x31\x0e\x8d\x19\x13\x5b\xc6\xc4\x39\x63\xf2\xc3\x19\xa3\x3d\x6c\xd7\x16\x7e\xbc\xd3\x01\x68\xe4\xc6\x3b\x7d\x80\x46\x84\xf7\x1b\x01\xcf\xd7\x89\xb1\x6c\x99\x78\x16\x4e\x6c\x07\x98\x38\x06\xfc\xe3\x3d\x18\xcb\xc7\x49\x60\xeb\xc1\x8a\x3d\x6f\x21\xff\xb9\x66\x22\x33\x72\x63\xc5\x9e\xb7\xa4\x5f\x29\x9b\xa0\xae\xe9\xce\xd8\xb3\x5a\x0b\xd6\x70\xad\xbb\x0c\xcf\xc4\x9f\xb1\xb4\x9f\x4c\xac\x17\x3e\x5b\xde\x4d\x80\xb5\x05\xfe\x2a\x3c\x9f\x37\x71\xac\xa8\xf0\xc9\x29\x0e\x9e\x66\x4a\xab\x59\xf6\xad\x77\xa7\x99\x32\xeb\x99\x3d\xee\xda\x29\x55\xf5\xb0\x59\x79\x36\xc4\xb1\x3a\xc6\x1f\x9f\xe4\xe3\xc6\xc8\x5f\x1c\xdc\x98\xb9\x86\x77\x9f\x21\x74\xac\x76\x0a\x26\xd6\x99\xc8\x46\x16\xac\x30\x0b\x2d\xda\xfa\x47\xf6\x1d\x36\x52\xb1\x62\xfb\xce\xdf\xdb\x17\x16\xce\x84\x37\xda\x0e\x34\x22\xf6\x25\x8c\x3d\x71\x8d\x01\x4c\x90\x23\x2d\xfa\xe7\xc2\x1c\x2b\x1b\x7d\x9b\x74\x5b\x71\x45\xf3\xbd\x9c\xd0\x88\xf8\x51\x75\x8c\xf7\xac\x52\x32\x74\xe8\xe6\x2e\xbc\xfd\x58\x04\x1f\xc9\xe5\x7e\x40\xba\xdc\xb7\xe0\x8f\xb1\x0d\x56\x6e\x06\x81\xb5\x6d\xf6\x8a\x4e\x0b\xe3\x74\xe9\x1f\xb6\x8e\xa1\xef\xff\x44\xe6\xc1\x2a\x55\x32\xb2\x2d\xa4\xec\xf2\x4e\x32\x54\x9e\xff\xe3\xcb\x2a\xb4\x59\x8b\x4c\xad\x77\x5f\x6c\x81\x0f\x96\xe8\x9f\x01\x72\xac\x94\xf5\xfd\x53\x5c\xdc\x30\xed\x24\xc3\x66\xfa\x67\x80\x1c\x2b\x67\xfd\xf0\x24\x2f\x37\x66\x3e\x70\xaa\x7f\x06\xd4\xb1\x92\x36\x98\x5a\x6f\x8a\xd9\x66\x9e\x64\x98\x5c\xff\x0c\x80\x63\x15\xed\xc8\xb7\xdf\x4a\xb7\x27\x3e\x50\xae\x7f\x06\xcc\xd1\x82\xd6\x66\xe7\xf7\xa4\x5c\x9f\x38\xc8\xf5\xc9\xcf\x9e\x4c\xa2\xdd\x6b\xc1\xc8\xda\x36\xb6\xb9\x3e\x71\x92\xeb\xff\xf4\xe6\x41\xef\x36\xea\xa8\x92\xbd\xd7\x2f\x2a\xc5\x19\x8b\xd4\xf3\xf6\x62\x93\xd5\x3a\x97\xdd\xfd\x04\x5d\x0a\x47\x5e\x5d\xaa\x44\x9b\xeb\xa1\x9a\xf7\xac\x13\xaa\xda\x5b\xdf\x8b\x4c\xca\x8c\x97\xa0\x52\xc1\xd7\xcb\x14\x7e\xbb\xbd\xdf\xbd\x1c\xc5\xe1\x1d\x1e\xa3\xae\x03\x26\x14\x96\x30\x85\x25\xfa\x83\x25\x58\xcc\xda\xf7\x28\x5c\x72\xc2\x9c\x8a\x74\x2c\x81\xc7\xae\xc5\xdf\x48\x9d\x5b\xe2\x11\xf1\xae\x3b\xe2\xdb\x67\xaf\xbd\x22\xdf\xc4\xe2\x44\x7f\x26\xaf\xee\xfb\x39\x32\x91\x83\xd2\x9a\xef\x60\xb1\xed\xa4\xb2\xef\xd7\x02\x3d\x65\x2a\x85\x27\x2e\xbe\xd6\x0d\x4c\xd5\x2c\xdf\xfd\xfb\xdd\xff\x03\x00\x00\xff\xff\xbf\xa7\xb0\xc4\x5e\x67\x00\x00")

FileEventMappingJSON is "/event_mapping.json"

View Source
var FileMetricMappingJSON = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xd4\x5d\x5d\x73\xdc\x28\x97\xbe\x9f\x5f\x41\xe5\x66\x93\x2a\x3b\xaf\xd5\x1f\xea\xee\xb9\xf3\x64\x26\x33\xa9\xb2\x13\x97\xed\xd9\xb9\xd8\xda\xea\xa2\x25\xda\xcd\x8e\x5a\xd2\x4a\xc8\xb1\x77\x6b\xff\xfb\x16\x20\x75\x4b\xe2\x80\x00\x29\x6f\xf2\xde\xf9\x43\x20\x9e\xe7\xc0\xd1\x03\x9c\x03\xff\xf1\x13\x42\xff\xfb\x13\x42\x08\xbd\x39\x12\x56\xd0\xe8\xcd\xcf\x28\xb8\x90\x7f\xa0\xf1\x9b\x9f\xd1\xec\x6a\xb3\x0a\x96\xb3\xe6\x6f\x29\x3e\x92\x37\x3f\xa3\x37\x34\x2d\xd9\x36\x27\xc5\xf6\x2b\x2e\xf2\x37\xf5\x3f\xcb\x43\x56\xb0\x6d\x4c\xca\xa8\xa0\x39\xa3\x59\xca\x9f\xfc\x94\x96\xac\xa8\x22\xfe\x6b\x89\x72\x52\xa0\x76\x89\x24\x4b\x9f\xfa\x05\xae\x9f\x49\x81\x9f\x08\x4a\xab\xe3\x8e\x14\x28\xdb\x23\xda\xae\x82\xbc\x90\xa8\x62\x24\x46\xbb\x57\x44\x70\x74\x90\xf5\xfd\x84\xd0\xff\x5d\x00\x58\x66\x00\x96\x59\x0f\xcb\xae\xc0\x69\x74\xd8\x92\xfd\x9e\x46\x94\xa4\xd1\xab\x11\xcf\x2f\xe2\x69\xf4\x9b\xf2\x34\x84\xe5\x1e\x33\x9a\x71\x08\xf2\x1d\x6d\x24\x88\x65\xa8\xac\x8e\xad\x7f\xe2\x34\x46\x31\x7d\x26\xc5\x13\x49\x19\x50\x42\x0b\x72\x0e\x80\x9c\xf7\x40\x72\x96\xb6\x92\x3b\x9a\xa5\xb6\x60\xff\xc2\x45\x8e\x7e\x6b\x4a\xb9\x82\x66\x07\x82\x70\x6d\x4d\x1c\x31\xfa\x4c\x10\x3b\x14\x04\xc7\xe7\x8e\xc0\x59\xe0\x8f\x1d\xf1\x0b\x3d\x56\xc7\x96\xd1\x95\x27\xcb\x2a\xcf\xb3\x82\x5b\x3e\x4b\x11\x46\xc7\x2a\x61\x34\x2f\xb2\x88\x94\x65\x56\x68\xb9\x59\x00\xdc\x2c\x20\x6e\xd2\x2c\xcd\x0b\x12\x7b\x72\xf4\x39\x4b\x2f\xef\x0a\x12\xd3\x08\xf3\x16\x7e\x53\xca\xea\x16\xa6\x4f\x28\xcd\xd2\xcb\xfc\xfc\xd6\xce\x38\xf9\xd6\xc4\x2e\x01\x62\x97\x90\x97\x28\x48\x9e\xe0\xd7\x6d\xf6\x4c\x8a\x03\xc1\xb1\xad\xb3\x40\xf7\xa2\x1c\xfa\xd2\x2b\x67\xe7\x32\xe4\x4b\x4b\xb4\xcf\x0a\xe9\x25\xda\x23\xaf\x71\x21\x5a\x6c\x21\x80\x2d\xec\x61\x2b\x0f\x98\x77\x97\x24\xc3\xf1\x96\x15\x38\x2d\xb1\x24\x5e\x78\xc5\x82\xfc\x77\x45\x4a\x66\xc4\xfa\x20\x2a\x40\xb7\xe4\x98\x15\xaf\xe8\x26\xc3\x31\x7a\x6c\xd5\x83\xee\x48\x81\xee\xbb\xf5\xd8\x61\x97\x2d\x43\x47\x59\x31\x6f\x20\x6a\x37\x90\x1b\x7e\x9f\x15\x47\x12\x9f\xd9\x51\x8b\x68\xb9\x59\x01\xdc\xac\x60\x6e\x4a\x96\x15\x64\x0a\x72\x1e\x78\x45\xdf\x84\x1d\xd1\x44\x47\x7a\x44\x19\x2d\x3f\x6b\x80\x9f\x75\x8f\x9f\x24\x8b\x70\x32\xa2\xeb\xdc\xf0\xf2\xdf\xa0\xe7\x88\x76\x39\x75\x1c\xa5\x84\x96\x97\x0d\xc0\xcb\x06\xe4\x65\x44\xb7\xe9\x10\x33\x65\xaf\xe9\xe0\xb4\xeb\x34\x6a\x11\x2d\x37\xc1\x95\x4a\xce\xfc\xaa\x47\xce\x53\xe2\xd9\x5b\x7e\x4f\xb2\x1d\x4e\xa6\xec\x27\x4f\xb2\x46\x97\x8e\xa2\x16\x79\xaf\xa7\x03\x50\xa0\xf3\xbe\x02\x7d\x2a\xd9\x28\x3a\xa6\xec\x1d\x5d\x70\x76\xdd\x03\x28\xa3\x27\x04\x90\xb1\xf3\x99\xad\xd3\xb5\x71\xb4\x2a\x1b\x26\x06\x3e\x5b\x7b\x53\x3d\x24\x40\xb4\xce\xe7\x96\xdf\x58\x1b\x44\x4a\x77\xf7\x01\xa4\x74\x6d\x3d\x1e\x40\x68\xce\x17\x76\x7e\xdf\xc2\xa5\x79\xa2\x31\x3b\x74\x3d\x18\x40\xdc\xcd\x97\x96\xce\xda\x02\x8d\x6f\x6f\x1b\xf0\xc2\x7a\x3c\x80\xa0\x9b\x87\x03\xfe\xd5\xcb\xa7\xda\xe1\x18\xf0\x9f\x7a\x1c\x80\xf8\x9a\xaf\x06\x1c\xa3\x9f\x33\xf4\x01\xe2\x62\x11\x40\x26\xcd\xfb\x32\xa9\x7c\x2d\x8f\xe4\xb8\xe5\xd3\x15\x87\xe1\xff\x5a\x32\x72\x6c\x34\xc0\x3d\xf1\xf3\x02\xb2\x92\x1a\x17\x6f\x80\x25\x2c\x40\xe5\xcc\x37\x30\xac\xaf\x05\x65\xc4\x17\xd7\x5f\xbc\xf0\x68\x60\xa2\x09\x76\xc8\x66\x80\x44\x59\xf4\x25\x4a\x32\x73\x34\xd6\xcd\xcc\xcd\x42\xb7\x1a\x83\xa0\x92\x90\x14\x61\x86\x6e\x66\x28\xc2\xd1\x81\x88\xef\x2c\x4e\x12\xf9\x68\x2d\x0b\x0c\xe8\x00\xc5\xb1\x08\x54\x74\x8e\x36\xbb\x99\x39\x1a\xea\x56\x67\x17\x3d\x40\xf9\xec\x30\x42\x40\x42\x2c\xfa\x12\x22\x2e\xb0\xeb\x70\xfb\x95\x3c\xd3\x88\x78\x0d\xb7\xba\xa8\xf3\x20\x9b\x01\xd2\x61\x31\x87\xa0\x38\x9a\xab\x8b\xc5\xcd\x72\x5d\x30\x2e\x03\x0b\x10\x0e\x8b\x85\xf2\x6d\xe2\x7e\x76\x7b\xa0\x6c\x5b\x60\x46\x6c\x5c\xfa\x1f\x94\xa1\x7b\xcc\x08\xa2\x29\xaa\x52\xba\xa7\x24\x46\x49\xf0\x0f\x46\x5e\x4c\x30\x78\x29\xfe\x06\xd1\xbd\x6a\xef\x2e\xbe\x4f\x38\x8d\x6b\xff\xae\xd4\x27\x3b\xa4\x1e\x20\x20\x26\x16\xb0\x98\xb0\xc2\x27\x25\x44\x03\xcf\x1a\x8c\xd4\x0e\x1c\x4b\x79\x06\x63\x30\x0b\x20\x19\x16\x90\x64\xa8\x47\x1e\x89\xb7\xec\x50\x64\xd5\xd3\x21\xaf\xcc\xf3\x8f\xfb\xa6\x00\xea\x88\x08\xa5\x30\xb8\x4e\x78\x2a\x0b\x49\x88\x73\x15\x5a\x54\x80\x80\x58\x40\x02\x62\x3c\xaa\x5a\x52\x8c\x82\x55\x0b\x0a\x0b\x5c\x80\x9c\x58\xac\x21\x81\x67\x87\xc6\xdd\x32\xbf\xfb\xd9\x03\xd0\x0b\x8b\x0d\x24\xe8\x9c\xda\xed\xc2\xfd\xef\x7e\x8c\xcf\x01\x3d\xb0\xbc\x02\x47\xb5\xac\xda\x6e\x01\xb8\xb3\x80\x63\xb3\xf4\x7b\x5a\x39\xef\xcc\x0d\x58\x81\xf7\x7b\x1a\x89\x45\xf0\x8c\xa9\x7f\xdf\x11\xf6\x95\x7f\x50\xd9\x81\xa0\x9b\x40\xf8\x83\xe6\xc3\x5a\x22\xf2\x92\x17\xa4\x2c\x49\x8c\xb0\x98\xb9\x47\x24\x65\xf8\x49\xef\xe0\xe6\x80\x78\x58\xf6\xc5\x03\x23\x2f\x5b\x51\xbf\x9d\x93\xfb\xb3\xf6\xb0\x1f\xc4\xb7\xde\xc6\xd9\x35\x25\xa4\x3a\x38\xd4\xae\x4f\xdf\x68\x40\x0f\x2c\x67\xaa\xe2\xe1\xed\x16\x8a\xc0\xce\x37\xcf\xce\xdf\x9d\xb7\x8f\xe4\x85\x55\x05\x11\xa2\xa0\x7c\x67\xe5\xa8\x07\x15\x1c\xda\x17\xd9\x11\xb1\xba\x66\xf3\x87\x67\x0e\xe8\x84\xe5\x1c\x86\x28\x95\x82\x3f\x46\x21\x16\x86\x41\xde\xeb\x40\x76\x55\x9c\x13\x4a\x40\x3f\x2c\x17\x7a\x61\x67\xe7\x48\x20\x59\x67\xe5\x4e\x20\x51\x67\xe1\x4d\x00\x8d\xb0\x5c\x1a\x24\x9d\x0f\x8a\x5a\xd0\x79\xc0\xa8\xe5\x9c\x05\x0e\x40\x35\x2c\x43\xad\x2b\xb0\x84\xd1\x1d\xda\x2c\x43\xb7\x9d\x2d\x3a\xc4\xac\x20\x0d\xd5\x62\x6d\x2b\x40\x43\x2c\x57\x06\xcf\x61\x89\xf2\x66\xd6\xb2\x8d\x8b\xf7\xb8\x05\xfb\x1a\x3c\x63\x82\x9c\x09\x67\xc3\x6e\xa8\x01\x2a\x63\xb9\x36\x39\x94\x71\xd0\x2d\x9c\xca\x2d\xdc\x41\x61\xf0\xa0\x93\xb1\x47\x0f\x68\x95\xe5\x46\xb7\x02\xe0\x05\x7c\x5a\x5b\xdb\x4f\xff\x17\x80\x98\x09\xaf\xb4\xd3\x7f\x2f\x6c\x53\x1b\xd3\x61\xee\xbf\x00\x04\x4a\x18\x98\x16\xdb\xec\x10\x42\x4b\x6d\x56\xae\xe8\x01\x58\x5e\x1b\x76\x3c\x0b\x40\xb2\x84\x33\xe3\xe2\x9a\x0f\x0e\x97\xcf\xc4\x03\xb4\x9c\x66\x81\x04\x50\x26\xe1\xdc\xb0\x59\x60\xd9\xe3\xd4\x6d\x61\x2b\x14\x37\xea\x2e\x81\x05\x06\x40\x77\x84\x0b\xd3\x1e\x81\x07\x08\x97\x89\xcc\x0d\xb0\x39\x60\x01\x03\x50\x1e\xe1\xd2\xb4\x0f\x65\xd9\xa7\x80\xe8\x0e\xbb\x2e\x05\x6c\x40\x59\xc0\x00\x84\x47\x18\x1a\x77\x08\x7d\x70\xb8\xd8\xe3\x01\xda\x1a\xb4\x40\x02\xc8\x8b\x70\x05\x4c\xe5\x2d\xc3\xb3\xea\xf9\x6d\xdb\x10\x8e\x31\x59\x85\xdd\xa2\x0b\x97\x54\xfc\x51\x5a\x0c\x3e\xa9\x99\x61\xea\x77\xc4\x17\x80\xf2\x08\xd7\xc0\x3a\x81\x17\x29\xd2\xaa\x13\xb1\xd2\x37\xb4\x81\x16\xe5\x51\x77\x5e\x00\x4d\x12\x6e\xf4\x7a\xdb\x76\x25\x78\x50\x71\x5b\xae\x0a\xdb\x69\x6e\x9b\x65\xe2\x25\x20\x51\x56\x7d\x89\xb2\x4f\xb2\x7c\x1b\x65\x55\xca\xb6\xb1\x39\x2a\xf7\x63\x92\x61\x11\x42\x78\x97\xd1\x94\xa1\x2f\x39\x29\xb0\x68\xc0\xdb\x5f\xb3\x6a\x97\x10\x74\x57\x90\x88\x96\x34\x4b\xdf\xd9\x6d\x2c\xc5\xa2\xd8\x65\xde\x14\x43\xfb\xfa\x0d\x97\xb9\x78\x43\x76\x7a\x43\x27\x82\xb7\x17\xc1\xd8\xc4\x26\xbe\xc5\x71\x7c\x51\x47\x22\x26\xaf\x17\x62\x81\xa6\xf9\xed\x12\x47\x51\x75\xac\x12\xcc\xc8\xbb\xf7\xe8\x37\x1c\x1d\xa0\x7f\x9d\x5f\x88\xa2\x2c\x65\x05\xdd\x55\x8c\x94\x68\xd6\xc4\x45\x0a\x96\xf4\x1d\x6b\x09\x48\xa6\x55\x60\xa2\x7b\x8b\xe3\x78\x22\xca\xd1\x75\x1c\x4f\x44\x3b\x8e\x63\x37\xea\x0d\x94\x00\xf2\x6b\x35\x33\x52\xb2\x3f\xe2\xa9\x28\xf9\x78\x7b\x3d\x11\x25\xc6\xce\x62\x45\x91\x6b\xa7\x0b\x6c\x3b\x1d\x20\x0b\x57\x73\x23\xc3\xc7\x2a\x99\x8a\xe1\xdb\x2a\x99\x98\xe1\xc9\x7a\x1e\x20\x35\x57\x0b\x3d\x2f\xa5\xaf\xef\x7b\xa0\xe9\x93\x87\xef\x2b\x45\xb1\x7f\x35\xdf\x87\x1e\x9b\x1f\x51\x9c\x91\x12\xa5\x19\x43\x34\x8d\x92\x2a\x26\xa8\xcc\x49\x44\x71\xd2\x6a\xb9\xc1\x3a\x80\x82\x5e\x2d\x4d\xd6\x19\xe1\x2a\xfb\x16\x72\x70\x95\x43\x56\x9a\xd2\x55\x02\x6a\x7c\x15\x1a\x29\xf1\x77\x95\x0a\x25\xf6\xae\x72\x88\x92\x1f\xd8\x55\x02\xb3\x84\xd5\xca\xc8\xb0\xaf\xab\x54\x09\xb6\xf7\x94\xb6\x04\x4f\xd6\xf1\x80\x79\xc2\x6a\x6d\xa4\xa5\x1e\xea\x53\x75\xbe\x07\x59\xdd\x44\xfc\xa8\x7e\x68\x1c\x3d\xc0\x74\x61\xb5\x81\x92\x56\x4e\x29\x22\xd6\xa9\x6d\xbf\xf5\x4a\x40\xc0\xb9\xc7\x1d\x48\x6b\xd3\xe7\xa4\x00\x13\x80\xf5\x15\xd4\x76\x5a\x96\x95\x4b\xcb\x3f\x75\x9e\x77\x6c\x77\xfd\x32\x6d\xab\x01\x1d\xbd\x0e\xa0\x8d\x9d\x8a\xd1\x84\xfe\x8f\x30\xb2\xc3\x9e\xce\x9f\x6a\x29\x1d\x80\xd6\x0b\x50\x42\x9e\x49\xd2\xe4\x5b\xc5\xbd\x2d\xab\x04\xcb\xbc\x2b\xe9\x88\x72\x82\xff\xee\x94\x15\x49\x52\x65\x84\x13\xc2\x2b\xb8\xe2\xcf\x05\x57\x7a\x02\x00\xd5\xbc\xd6\x2c\x5a\xda\x52\xd0\x5d\xaf\x9c\x82\x82\x7e\xbc\xe3\xb4\x14\x00\xb2\x76\xad\x84\x7a\x33\x9c\x24\x5b\xd1\x7f\xf7\x84\x45\x07\x73\xf7\xe5\x9d\x0e\x3d\xf0\x22\xe8\x9e\xe0\x92\x77\xc4\xb7\x9d\x3e\xfd\x91\xd7\x61\x74\x42\x77\xa7\xe5\x05\xe1\x88\x78\x5d\x25\xca\xa2\xa8\x2a\x0a\xee\xe9\x76\x24\xc2\x55\x49\x04\xfe\x94\xbc\x30\x84\xcb\x92\x1c\x77\xc9\x6b\x27\x93\xec\x80\xa5\x6e\x7a\x25\x0c\xed\x08\x49\x91\x68\xbb\x69\x3c\x00\x52\x76\xbd\x00\xb9\xe0\x1e\x61\x1b\x93\x9c\xa4\xf1\xe0\x7a\x0e\x48\xc8\x39\x09\xf1\xd7\x53\x2d\x53\x50\x82\x53\x44\xd3\xbc\x62\xe7\x65\x9d\xdd\xab\xe0\xa9\xcd\x0c\x3d\x13\x83\x9f\x31\x4d\xf0\x2e\xd1\x6f\x2d\x85\x80\x84\x5c\x2f\x41\x56\xea\x60\x92\x31\xbc\xfc\x8a\x19\x6e\xf2\x3c\x26\xe1\xa3\x19\x37\x2d\x49\x83\x53\x8e\x7e\x47\x5a\x99\x1f\x71\x75\x1a\x50\x27\xe2\x0a\x52\x66\x55\x11\xd5\xea\x7b\x47\x78\xb5\x27\xba\x50\x56\xa0\x7d\x95\x24\xaf\xf5\xd8\x23\xf1\x05\xff\xd3\xa9\x67\x66\x19\x3a\xe2\xf4\xf5\xbc\xa1\x97\xed\x11\x46\x4f\xf4\x99\xa4\x88\xbd\xe6\x04\xe1\x82\xa0\xac\x62\x25\xc3\x69\x4c\xd3\x27\x3d\xfd\x80\x5c\x5d\x87\x20\xfd\xf5\x56\xa1\x3b\xe9\xf5\x9e\xe6\x54\x43\xb2\xd9\xb2\x2c\xab\xdd\x65\xed\xbc\x68\xd9\x63\x8b\x93\xc5\x07\xe8\x89\xa8\x16\x17\xc3\x9b\x66\x21\xa0\x30\xd7\x2b\x90\x94\xf2\x35\x8d\xdc\x19\x79\x78\x4d\xa3\x43\x91\xa5\xb5\x53\x9d\x8a\x19\x91\xd2\x4b\x4b\xb4\x4b\xb2\xe8\x6f\x12\x23\xcc\x10\x46\x5b\xd1\xc6\x5a\x1f\xbd\x7d\x87\x22\x9c\x24\x7a\xe4\x80\x88\x5c\xaf\x41\xe4\x19\x3b\x90\xc2\x1d\xfa\x17\x5e\x6c\x0c\xe0\x7a\x2c\x1d\x69\x19\x91\x24\xc1\x29\xc9\xaa\x12\x15\xb2\x7a\x3d\x2e\x40\xfd\xad\x37\x20\xae\x28\x4b\x79\x4f\x61\x53\xb8\x9b\x4f\xc7\x23\x89\x29\x9f\xf2\x34\xb5\x4e\x61\x6a\xae\xc3\x94\x8a\xeb\x75\xe6\x23\x2d\xf5\x2c\xac\x00\x1d\xb9\xb9\x02\x59\xc8\x69\x4e\xb6\xbb\xaa\xf4\x00\x7d\x47\x73\x82\x7e\xa9\xca\x69\x3e\x38\x28\xca\x8e\x79\xd5\x9d\x34\x02\x1e\xb6\x3d\x0c\x9a\x12\x1c\x43\x42\x53\x22\x86\x04\x87\xa2\xe5\x05\x50\xaa\x9b\x00\xde\x41\xb3\xdc\x65\xe9\xee\x9d\x79\xef\xaf\x74\x53\xd2\x34\x3b\x2b\xda\x87\x5c\xa3\x19\x57\x80\x60\xdd\xcc\xa0\x79\xc6\x3e\xdf\xce\x67\xe6\x79\xe3\x1d\x6a\xab\xb2\x7a\xb6\x38\xd1\xdc\x50\x7b\x2a\x88\x76\x5d\xad\xa0\xec\x70\x24\x8c\x46\x17\xa2\x7b\xe0\x82\x5c\x20\xc2\xa2\xf7\xef\xf4\x64\x00\xd2\x75\x33\xd7\x90\x11\x2e\x9c\xc8\x90\x0b\xb0\x13\x2d\xb9\xfe\x53\xc8\x00\xb4\xeb\x66\x01\xce\x40\x53\x46\x9e\x86\x3e\x0c\xf2\x99\x0e\x27\x76\x5c\xd4\xb5\xbb\x62\xd6\xe3\x02\xd4\xe7\x06\x3c\xca\x62\x47\x19\xff\x34\x3c\x93\xc2\xbc\x69\xfe\x0b\x65\x97\x1f\xe4\x73\x1e\xf8\x76\x94\x5d\xca\xb7\x08\x4b\x4f\x06\x13\x50\x79\x9b\x10\x82\x29\x16\xe4\x32\xf3\x92\xd0\x07\xf9\xcc\xe5\xc7\x24\xfb\xea\x81\xb1\x7e\xc5\xe5\x9e\x17\x77\xee\xbc\xff\x55\x1d\xf3\x8b\xfa\x84\x9c\xc1\x5e\x0b\xe8\xb8\xcd\x0a\x86\x2d\x3e\x19\xdb\x24\xde\x0e\x1e\x33\x80\xe3\x7f\xc8\x5d\x73\x1f\xe8\xf2\xcb\x94\xf0\x4a\x9a\x94\x9a\x89\x4c\x0c\x28\xb7\xcd\x1a\xc2\xca\x95\x93\x11\xe2\x2d\x2d\x23\x0f\x70\x5d\x45\x36\x19\x2e\x40\xb9\x6d\x36\x3a\xcf\x53\x6c\x65\x7d\xdc\xa0\xc7\x2a\xe5\xef\x18\x5a\x51\xe1\xce\xa8\xb8\x7c\x14\xc5\x3c\x3d\x52\x71\x29\xdf\x8a\x3a\x6f\x9d\x8c\x82\xb5\x2a\xdb\xc2\x2b\x65\xf9\x8f\x4b\xb1\x6d\x99\x64\xac\xb4\x91\x6c\xed\xe7\x2c\x96\xfd\x44\x21\x51\x39\xaa\x4a\xc3\x1a\xc7\x3a\x00\x9a\xda\x57\x52\xd1\xde\x6a\x9d\x52\x3c\x82\x46\x3a\x1b\xf9\x22\xbd\xcf\xd1\x23\x99\x01\x48\x66\x2a\x12\xab\xd5\xe2\x66\x81\x78\x2c\x9a\x53\x27\xf2\xc0\x33\x07\xf0\x28\x71\x87\xb1\xe5\x1a\xb2\x64\x75\x94\x2f\xac\x2d\x23\xc2\x04\x2f\xea\xe8\xa0\x8b\x46\xcb\xe2\x34\x3e\xcd\xf3\xdb\x81\x54\xed\x54\x44\x1b\xd0\x0b\x00\xf4\x02\x02\xed\x66\xc6\x51\xc0\x4f\x46\xfc\xb6\xd0\x97\x00\xf4\xbe\xb2\xc1\x2c\x3b\xd2\xc8\x3e\x36\xea\x5a\x3c\x6f\x9d\x18\xdb\xcd\x2f\x93\x2f\x13\x38\x0a\x12\x37\x27\xe1\xd9\x04\x40\xad\x43\x00\x4b\x38\x8c\xc5\xfa\x5c\x18\x00\xd7\x54\x27\xc2\x0c\xa2\x86\x0e\x88\x01\x0b\xd9\x1c\x07\xb8\x5e\x01\x4c\x01\x09\x1a\x0d\x59\x5e\xe1\xec\x35\x5b\xcd\x32\xda\x74\x41\xfb\x10\xea\xc1\xc5\xba\xf5\x1a\x80\xbc\xd6\x43\x76\x48\xe0\xef\xf4\x07\x7f\xd8\xc3\xb9\xfc\x7e\xc0\x37\x00\xf0\x8d\x29\x19\xc7\x1b\xba\x67\x42\xce\x20\xf0\x51\x29\x39\x1b\x40\x16\x05\x57\xa6\x9d\x03\xde\x01\x19\x4b\x3c\x96\xb0\x6b\x58\x8f\x75\x05\x13\xad\xe2\xb5\x56\x6c\x44\xb3\xb4\x48\x01\x55\x15\x04\x20\xd2\x34\x63\xdb\x92\x24\x24\x62\x36\x9f\xf0\x3e\xcc\xcf\x19\x43\x0f\x75\xe9\x29\x30\x8a\x05\xe9\xaf\xf5\x46\xd9\xa9\x59\x5a\x98\x80\xe4\x0a\x66\xc6\x1c\xab\xd1\x3d\xda\x39\x35\x67\xb0\x4f\x8f\xcb\xb4\xda\x00\x32\x2d\xe8\xcb\xb4\xf4\x39\xa1\xe9\xdf\x5b\x91\xde\xbc\x8d\x31\xc3\x92\x88\x23\x65\x43\x56\xff\xfc\xef\x37\x34\xfd\x1b\x3d\x8a\xc4\x68\xb1\x19\xf6\xa8\x96\x04\xe7\x03\xa2\x04\x7f\x17\xda\xbd\x32\x52\xa2\xd6\x1b\x1b\xc7\x8e\xea\xda\x65\x24\x19\xef\x07\x07\x82\x63\x52\xe8\x5d\xd8\x06\xd0\x67\xc1\x62\x10\x6d\x41\x22\x42\x9f\x9d\xa1\xde\xf7\x8a\x59\xe1\x6c\xde\x35\x02\x24\xa0\xc4\x82\x25\x0c\xb2\x2a\x49\xe1\x65\xd1\x3f\x4b\x52\x38\x19\x54\x14\xb0\xb2\xe7\x85\x88\x11\x4c\xff\xed\x1c\x22\x38\x88\x18\xd0\x6b\x41\x38\x84\xd8\xc5\xaa\x67\xb8\x36\x46\xed\x63\xd5\xd8\xd4\x03\x28\x20\xb7\x82\x15\x0c\xb4\x39\x03\xc1\xcb\xbc\xcd\x71\x08\x4e\x26\x3e\xed\x27\x34\xaf\x96\x1c\xd4\x1b\xd1\xec\xd4\xd3\x2f\x0c\xc6\xd7\x43\x07\x64\x57\xb0\xb6\x81\xee\x62\xe7\x2e\x6e\x1b\x5b\xdb\x83\xd6\xf4\x02\x3d\x62\x40\x6f\x05\x1b\x93\xb3\x4a\x0b\xae\xec\x46\x78\xe8\xcf\xa2\x02\x0f\x47\x9d\x66\xe9\xe5\x59\x4a\xd6\xfa\xd2\x6a\xb4\x1b\x0e\x2a\x05\xf4\xd6\xec\xca\x30\xaa\x47\xc0\x17\x23\x76\x5a\xf4\x95\xb5\xc3\x33\x50\x00\x08\x31\xe5\x7c\xfc\x4e\x17\x18\xdb\x03\xee\x3d\x29\x98\xdc\xf8\x80\x36\x53\x4e\xd3\x6f\x1b\x7f\xa4\xed\x27\xc3\x3d\x89\xd9\x01\x51\x36\x33\x8a\x32\x29\x4f\xfd\xcd\x2e\x13\x91\xdd\xe1\x4b\xf1\x39\x16\x2e\xa0\xca\x66\x0b\x83\xad\xfd\xd1\x0a\x5b\xbb\x83\x15\xc5\xa6\xc1\x0a\x88\xb3\x99\x46\x9c\x35\xf5\xdb\x2e\x9b\x34\x16\xad\x8b\x59\xe6\xce\xb6\x36\x03\x15\x54\x39\x29\x50\x49\xa2\x2c\x75\x00\x08\x68\xb1\x99\x46\x8b\xd5\x5f\x44\x47\x7c\xf5\x57\xd9\x13\xde\xe9\x2b\xec\x83\x0d\x90\x5f\xb3\x95\xd1\x1d\x93\x32\xcf\xd2\x92\xf8\xce\x23\xee\xeb\xf2\xae\x13\x8a\xe6\xbd\x56\x2a\xb4\xfb\x70\xad\x45\x4b\xf9\x9b\xba\x6a\x22\x57\x8d\xca\x2a\x61\x9c\x54\xf0\xd3\x37\xb8\x94\x14\x5c\x01\x6a\x6e\xb6\x36\xb9\x77\x6f\x22\xa5\x7b\xf7\xe4\x51\x78\xf3\x1f\x9e\x4c\x40\x28\x2a\xe7\xdd\xb7\x32\x31\x0e\xbe\x39\x6b\x7f\xe0\x64\xef\x9c\xb1\x76\xc0\xc9\xfe\x07\xca\x57\xeb\x66\xa9\x65\x05\x5a\x74\xd2\x80\xd0\x0e\x97\xf2\x76\x12\xd6\x4b\x44\xc8\x2b\x56\x9a\xce\x91\x07\xd4\xea\xfc\xca\x64\x84\x11\xa9\x69\x5d\x43\x38\x24\xa6\x99\x8d\x31\x61\x5a\x5a\x00\x1c\xac\x1f\xce\x03\x23\x1f\xde\x59\x53\x3d\x3a\xec\x73\xa6\xcc\x74\x4c\x9d\x31\x15\x00\x67\xeb\x87\xf3\x99\x91\x13\xff\x5c\xbd\x1e\x29\xf6\x99\x7a\x76\xa4\x7c\x8b\x3c\xbd\x6f\x36\x36\x01\x3d\x3d\xd7\x85\xd6\x05\xa1\x91\xf0\x3f\x7a\xa1\x75\x9c\xe6\x49\x88\xfd\x67\x84\xd5\x05\xc0\xd5\x01\xa1\x72\x75\x00\xcd\x23\xbb\x6d\xe9\x4f\x77\x1f\x4c\xc8\x3f\x81\x88\xb8\xee\x8a\x5e\x23\xc3\xf6\x43\x00\xdc\x09\x10\x2a\x77\x02\xc8\xfd\xfc\xed\x50\x63\xeb\xd0\x01\x97\xa6\xd6\x91\x02\x36\x0d\x05\xc4\xae\x72\xd8\xff\x39\x52\xc6\x3a\xeb\xea\x1c\x34\x63\x9b\x72\xd5\xdd\x20\x69\xc7\xcf\xb0\x03\x66\x0d\x24\xcc\x50\x42\x70\xc9\x50\x96\x76\xb6\xf5\x2f\x9a\x8b\xc0\x62\x84\xa3\x22\x2b\x4b\x71\xe4\x97\x00\x6f\xd0\x1d\xc0\x15\x01\xa1\x72\x45\x40\x79\xb4\x0d\x61\xee\x9d\x57\x72\x1d\x31\xfa\x4c\xd9\xeb\x50\xd4\x50\xde\x41\xce\xe8\x91\x74\x61\x36\x49\x0a\xf5\x15\x67\x32\x9f\x2c\x27\x11\xdd\xd3\xc8\xf6\x02\xb2\x00\xb8\x43\x20\x54\xee\x10\xc0\xd1\x81\x92\x67\x12\x6f\xb3\x28\xaa\x72\x3c\x84\xf7\xba\x7e\x1c\x7d\xe9\x3f\xee\x7a\x6d\x1b\x87\x28\x2f\x59\xab\xff\x20\x2c\xa7\xbf\x96\x4d\x3e\xef\x77\x17\x5b\x00\xdc\x3b\x10\x2a\xf7\x0e\x90\x84\x3e\xd1\x5d\x42\xc4\x9d\x8d\x32\x2e\x42\x0e\x25\xa3\x5f\xa9\x0b\xa1\xbf\x44\xfb\xee\x48\xdd\x09\x08\xfa\xd0\x2e\x6b\x17\x15\x21\x31\x8a\xce\x8f\x0b\x82\x9a\x06\x71\x52\xe4\xe8\xe8\xd3\x65\xb8\x11\x07\x90\x76\xca\x7d\x04\x75\xb8\xbe\x75\x5e\x65\x27\x5e\x7f\x92\xbc\xca\x4e\x54\x7e\x3b\xaf\x72\x64\x4e\x65\x00\xdc\x58\x10\x42\x37\x16\xd8\x62\xbf\x99\xd5\x67\x0d\x4f\x01\xfb\xb4\x17\x3a\x71\x26\x69\x00\xdc\x62\x10\x2a\xb7\x18\x30\xf2\x62\x0d\xbb\x7b\xce\xf2\x14\xd8\xab\xce\x91\x4f\x93\x13\x00\xa8\xa6\x05\x18\xc1\xb7\xaf\xec\x6d\x7f\x8e\x64\xfb\x58\xa5\x72\xa2\xfb\x67\x4a\xd9\x24\x7c\x74\x5d\x18\xda\x37\x2f\xa8\x52\xda\x7c\x08\x6b\x19\xd2\x8c\x96\x24\xc3\xf1\x29\x12\x4e\x46\xbb\xf1\x39\xe5\x29\xc9\x49\x44\xc2\x75\x94\x99\x2b\x89\x80\xe0\x52\xae\x5c\x88\xf6\x2e\x14\x76\x62\x3a\xbf\x2b\x89\xfa\xc8\x7a\x57\x96\x00\xc1\xa7\xdc\xdb\xc0\xc7\x9a\x03\x4d\x4d\xc4\xc5\x77\x65\xa8\x89\xb5\x94\x27\xc6\x03\xa1\x96\xa3\x58\x03\xd4\xa7\x72\x6f\x44\x7d\xac\x85\x0b\x73\xf5\xb9\x1a\xdf\x79\x80\xd2\x94\x4f\x6b\xca\x0b\x44\x5e\x66\x17\x28\xcf\xf2\xe8\x82\x4f\x99\xe4\xa2\x4f\x49\x8f\x34\xc1\xc5\x38\xfa\x00\xf9\xaa\x5c\x50\xc1\xe7\x6c\xdb\xd3\x9c\xcd\x85\x45\x3e\x31\xbc\x6c\xcd\xbf\xbf\x27\x99\x41\x88\x76\x94\x19\x67\x9c\x20\x79\xef\xd1\xe7\x4c\x1c\x33\x8b\x19\x62\x07\x5a\x9e\x02\x16\xa4\x80\x96\xa9\xf8\x70\x03\x49\xca\x1b\x15\x71\x8f\xca\x1b\x64\x30\x03\x20\xad\x95\xfb\x34\x64\x82\x9e\x9f\x21\x64\x26\xe0\x8f\x62\x0a\xa7\x54\x43\xd7\x1e\x0d\x48\x73\xe5\x8a\x0f\x99\xde\xe7\x47\xa5\xcc\x23\xfc\x51\xa8\x74\x4a\x54\x74\xa4\x12\xb8\x73\x24\x5c\x82\xcb\xb9\x87\xdc\x76\x82\xfb\xf1\xe6\xcb\x5d\x2b\x35\xf7\xed\x1d\x17\x68\x83\xeb\x47\xa7\x89\x5f\x33\xbd\x3c\x49\x7a\xdb\x95\x75\x03\x4a\x40\xd9\x2f\xc1\x45\xda\x72\x1c\x4a\x8b\x6c\x5c\x3d\x4e\xfb\x33\xef\x0c\x48\x01\x35\xbf\x04\x97\x5e\xe3\x71\x48\x2d\x52\x6d\xf5\x48\xed\x4f\x36\x35\x20\x05\x64\xbb\x72\x15\x49\xfb\x04\x76\xbf\xa3\x80\xc4\x11\xec\x0e\x03\x5e\xec\x7b\x7d\x9f\x43\x81\x02\xe0\xde\x92\x50\xb9\xb7\xa4\x73\x9a\xbb\x1f\x27\x32\xb0\xc0\x81\x14\x19\x52\xf0\xbd\x58\x01\x44\xf7\x52\x13\x8a\xd0\x8e\xb5\x28\xc5\x57\xc3\x72\x8c\xd4\x9b\xb0\xed\x60\x0b\x51\xde\xf2\x88\x02\x51\xae\xfd\x5e\x74\x7e\x2f\x07\x39\xb4\x63\x0f\x5c\x92\x12\x2e\x43\x03\xc6\x26\x24\xc1\x03\x5e\x13\x97\xe0\x80\xac\x7e\x9b\x2b\x28\x40\xb8\x2e\x35\xc7\xc5\x24\x84\xe4\x34\x7d\xf2\x38\x32\xa6\x2e\x39\x69\x58\xfe\xa9\x39\x7a\x6c\x80\x1a\x54\xee\x3d\xc9\x23\x4a\x7c\xa2\xd1\xef\x3e\x7c\x22\xdf\x2a\x16\x9d\xd7\x6d\x80\x05\x28\x33\xe5\x42\x93\x3e\x2c\xab\x28\x87\x3e\xa6\x69\x82\xce\xcd\x68\x80\x3b\x4c\xc2\xf0\xca\x74\xb6\xe1\xb6\xbe\x55\x52\xdc\x89\x68\xc4\xf3\x17\xef\x2b\xd2\x0b\x76\xf4\x5b\xef\x92\x48\x63\x1e\xa0\x75\x1d\x7a\x84\x80\x30\x52\xae\x31\xe9\x22\x3c\xdf\xa1\xe1\x0f\xb0\x75\x71\xa4\x2f\xbe\x76\x15\x7a\x78\x80\x1a\x0a\x67\x46\x78\xad\x7b\x29\xfc\xf1\xb5\x56\xdd\xbc\x01\x76\xea\xd0\x23\x04\x54\x50\x38\x37\x23\xac\x8a\x3d\x8e\xc8\x58\x88\xb2\x96\x91\x18\x3b\x95\xe8\x41\x02\xba\x26\x5c\xd8\x8c\xc3\xfa\x46\xd2\x91\x03\xb1\x5b\x8b\xe7\x48\x1c\xb8\x1c\x35\x00\x6e\x4d\x09\xc3\xa5\xc5\x50\x1c\x89\x51\x0e\xa4\x71\x10\x3b\x75\xe8\x11\x02\x22\x25\x0c\x6d\x46\xe3\x48\x88\xed\x75\xef\xb1\xe3\x71\x10\x24\x20\x5a\xc2\x95\xd5\x80\x1c\x8b\xb2\x1e\x4c\x23\x61\x76\x6b\xd1\xe3\x04\x04\x4c\xb8\xb6\x19\x93\x32\xde\x6f\xf4\xa0\x14\x81\xec\x38\x8d\xe5\x0f\x11\x1e\x3b\x3e\xd5\xfa\xf4\xd8\x01\x95\x13\x6e\x6c\xb0\x9f\xa2\x1e\x47\xc3\x57\x6b\xf2\xc4\xdd\xaa\x48\x0b\x18\xb8\x29\x25\x5c\x5d\x59\x75\xea\xb1\xd6\x6e\xfa\xe3\x64\xe6\xd6\x57\xa8\x87\x0f\xa8\xa4\x55\x60\x05\x7f\x02\x83\x37\x0d\x1e\x6f\x71\xa0\x26\x3d\x66\x40\x3a\xad\xac\xa4\x93\xa3\xc5\x6b\xbf\xaa\x34\xb6\x6b\x9f\x0f\xd7\x0f\x96\xa8\xed\xeb\xd3\x63\x07\x44\xd5\xca\x2c\xaa\x18\x79\xd9\x66\xb9\xbf\x91\x7b\x87\xc0\xba\x5a\xb6\x29\xae\x87\x04\x48\xa8\x95\xfe\x4a\x5b\x31\x5d\x32\x6f\x3b\x8a\xb9\x55\x33\xad\xc2\xb1\x4c\xc8\xfe\xf5\xfe\xfa\x16\xb1\xec\x14\xad\x30\x3c\x3b\x1b\xac\x41\x0f\x09\x10\x4c\x2b\xc3\x05\xb7\x6e\x98\x78\x19\x46\x52\xd9\xa8\x53\xf0\x05\xcb\x44\x03\x6d\x61\x99\x2b\xd1\x23\x03\x84\xd2\x4a\xbd\x28\xff\x34\xd3\xdc\x9e\x62\xe7\x87\xd1\x29\xe7\xa9\x88\xad\xff\x6e\x5a\x7d\x37\x42\xcd\x22\x2f\xd0\xbd\x4e\x3d\x76\x40\x3f\x29\xb7\x50\xb4\xee\x71\xf4\x82\x7e\x9e\x3c\x4e\x86\xdc\xb6\x4a\x3d\x70\x40\x50\x29\xf7\x4c\xb4\xe7\x6e\x7e\xd0\xdb\x53\xae\xc9\xc0\xdb\x57\xaa\x87\x0f\x68\x2a\xe5\x1e\x89\xf6\xac\x6e\x54\xa7\x97\x21\x30\x13\xf7\xfa\xe1\x4a\xdf\xa3\xc7\x66\x77\xb9\x73\x37\x50\x2f\x05\xc6\x10\xe2\x0d\x5c\x59\x11\x2a\x57\x56\xb4\xaf\x08\x1d\x31\x3e\xa6\x25\xc9\xba\x4e\x3d\x76\x40\x86\x29\x17\x5f\x74\x26\x53\xe3\x86\xc8\xb4\xf8\x1d\x6a\xd5\x33\x00\x88\x32\xe5\xe6\x8b\xce\x34\x6b\xd4\x28\xe9\x75\xcb\x89\x86\x89\xac\x55\x1c\xfb\x24\xf4\xd8\x75\xad\xc7\xde\xf9\x92\x02\xa8\x35\xe5\x2e\x8c\xfe\xfc\x6b\x14\x2f\xea\x61\x52\x13\x51\x63\x59\xb1\x9e\x0a\x40\xe5\xa9\x57\x61\x74\x66\x66\xe3\x86\xc8\xc4\x3d\xa4\x5b\xed\x84\x5d\x04\x90\x8a\xea\x65\x18\xfd\x29\xdb\x38\x6a\xa6\xef\x24\x8e\x35\xeb\xd9\x00\xe4\xe5\x06\xb8\x9a\xbd\xad\x30\x87\xc5\xf3\x2f\x3d\x21\x7f\x33\x13\x33\x93\x23\x2d\x4b\x52\x22\x9a\xa2\x9b\xc0\x69\x73\xc3\xab\x3e\x3d\x66\x40\x56\x6e\x80\xd8\xee\x96\xb2\x9c\x0e\xb2\xe5\x76\x87\x4f\x75\x7a\xc0\x80\x9c\xdc\x00\x87\x7e\x75\x14\xe5\x74\x90\xad\xb7\x07\xfc\x2a\xd4\xc3\x06\x64\xa4\x72\xba\xfc\xb9\x6f\xd7\x3e\x50\x8a\x05\x5b\xf4\xcd\xac\x4e\xce\x52\x65\xab\x83\xfe\x52\x62\x6b\x05\x44\x0f\xdb\xb6\x26\xf4\xf6\xfa\xf1\xcb\xad\x74\x85\xfc\x07\xee\x0a\xf5\x1c\x00\xd7\x51\x84\xca\xa1\xf2\xa7\xbe\xde\xd1\xd4\xe3\x29\x38\x47\x00\x77\xf6\x3d\xde\x8f\x21\x43\x57\xa7\x46\x4d\x77\xb9\x33\x88\x69\xe0\x7e\x8a\x50\x39\xa5\xbe\x35\x46\xdc\x38\xb2\xef\xd3\xc3\x2b\xf6\x9e\x35\xea\x91\x03\x42\x52\x39\xb8\xbe\x1d\x3c\x35\x0c\x1a\x08\x9b\xfa\xa5\x5d\xc8\xee\xd0\x8a\x06\x60\x27\x24\xc8\x80\x03\xd0\x7e\xca\x49\xf4\x9d\x88\x27\x57\x20\x32\xd6\xc9\x19\x49\xab\x33\xdb\x42\x01\xb4\xdb\x66\x0d\x9f\xd2\x78\xa0\x6c\x5b\x60\x46\xec\xd2\x8f\xfe\xa0\x0c\xdd\xb7\x9e\x86\xda\xcf\x9f\xe1\x35\xaa\x67\xa8\x26\x49\xff\xd0\x45\xab\x03\x17\x03\xe0\x0a\x88\x70\x03\xdc\x23\xcf\xeb\x1a\xb1\x9e\xd1\xb4\xe6\x66\xca\xf5\x0c\xfb\x4a\xf5\xf0\x55\x91\xb5\x52\x0e\x97\x97\xd1\xe3\x7e\x31\xca\x8f\xa2\xec\x8f\x12\xa3\xdc\x8e\x83\xb7\x8c\x47\xfe\xe9\x3f\x7f\xfa\xff\x00\x00\x00\xff\xff\xc5\x6a\x79\x45\x2b\xab\x00\x00")

FileMetricMappingJSON is "/metric_mapping.json"

Functions

func GetAvailableEvents

func GetAvailableEvents() events

func GetAvailableMetrics

func GetAvailableMetrics() metrics

func ReadFile

func ReadFile(path string) ([]byte, error)

ReadFile is adapTed from ioutil

func WalkDirs

func WalkDirs(name string, includeDirsInList bool, files ...string) ([]string, error)

WalkDirs looks for files in the given dir and returns a list of files in it usage for all files in the b0x: WalkDirs("", false)

func WriteFile

func WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile is adapTed from ioutil

Types

type CUPTI

type CUPTI struct {
	*Options
	sync.RWMutex
	// contains filtered or unexported fields
}

func New

func New(opts ...Option) (*CUPTI, error)

func (*CUPTI) Close

func (c *CUPTI) Close() error

func (*CUPTI) DeviceReset

func (ti *CUPTI) DeviceReset() (time.Time, error)

func (*CUPTI) SetContext

func (c *CUPTI) SetContext(ctx context.Context)

func (*CUPTI) Subscribe

func (c *CUPTI) Subscribe() error

func (*CUPTI) Unsubscribe

func (c *CUPTI) Unsubscribe() error

func (*CUPTI) Wait

func (c *CUPTI) Wait()

type Error

type Error struct {
	Code types.CUptiResult
}

func (*Error) Error

func (e *Error) Error() string

type Event

type Event struct {
	Event            int    `json:"event,omitempty"`
	ID               int    `json:"id,omitempty"`
	DomainID         int    `json:"domain_id,omitempty"`
	Name             string `json:"name,omitempty"`
	ShortDescription string `json:"short_description,omitempty"`
	LongDescription  string `json:"long_description,omitempty"`
	Category         string `json:"category,omitempty"`
}

easyjson:json

func FindEventByName

func FindEventByName(s0 string) (Event, error)

func (Event) MarshalEasyJSON

func (v Event) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Event) MarshalJSON

func (v Event) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Event) UnmarshalEasyJSON

func (v *Event) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Event) UnmarshalJSON

func (v *Event) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type HTTPFS

type HTTPFS struct {
	// Prefix allows to limit the path of all requests. F.e. a prefix "css" would allow only calls to /css/*
	Prefix string
}

HTTPFS implements http.FileSystem

func (*HTTPFS) Open

func (hfs *HTTPFS) Open(path string) (http.File, error)

Open a file

type Metric

type Metric struct {
	Metric           int    `json:"metric,omitempty"`
	ID               int    `json:"id,omitempty"`
	Name             string `json:"name,omitempty"`
	ShortDescription string `json:"short_description,omitempty"`
	LongDescription  string `json:"long_description,omitempty"`
}

easyjson:json

func FindMetricByName

func FindMetricByName(s0 string) (Metric, error)

func (Metric) MarshalEasyJSON

func (v Metric) MarshalEasyJSON(w *jwriter.Writer)

MarshalEasyJSON supports easyjson.Marshaler interface

func (Metric) MarshalJSON

func (v Metric) MarshalJSON() ([]byte, error)

MarshalJSON supports json.Marshaler interface

func (*Metric) UnmarshalEasyJSON

func (v *Metric) UnmarshalEasyJSON(l *jlexer.Lexer)

UnmarshalEasyJSON supports easyjson.Unmarshaler interface

func (*Metric) UnmarshalJSON

func (v *Metric) UnmarshalJSON(data []byte) error

UnmarshalJSON supports json.Unmarshaler interface

type Option

type Option func(o *Options)

func Activities

func Activities(activities []string) Option

func Callbacks

func Callbacks(callbacks []string) Option

func Context

func Context(ctx context.Context) Option

func Domains

func Domains(domains []string) Option

func Events

func Events(events []string) Option

func Metrics

func Metrics(metrics []string) Option

func SamplingPeriod

func SamplingPeriod(s int) Option

type Options

type Options struct {
	// contains filtered or unexported fields
}

func NewOptions

func NewOptions(opts ...Option) *Options

type VersionInfo

type VersionInfo struct {
	Version int
}

func Version

func Version() (VersionInfo, error)

func (VersionInfo) String

func (v VersionInfo) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL