�
f�� � �� � d dl mZ d dlmZ d dlmZ d dlZ d dl
mZ d dlZd dl
Z
d dlZd dlZddlmZmZmZmZmZ ddlmZ dd lmZ dZd
ZdZdZd
ZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/d Z0d!Z1d"Z2d#Z3d$Z4d%Z5i ed&�ed'�ed(�ed)�ed*�ed+�ed,�e d-�e!d.�e"d/�e#d0�e$d1�e%d2�e&d3�e'd4�e(d5�e)d6�e*d7e+d8e,d9e-d:e.d;e/d<e0d=e1d>e2d?e3d@e4dAe5dBi�Z6dCa7dDZ8dEZ9dF� Z:dxdG�Z;dxdH�Z<dI� Z=dJ� Z>dK� Z?dL� Z@dM� ZA G dN� dOe� ZB G dP� dQeB� ZC G dR� dSeC� ZD G dT� dUeB� ZE G dV� dWeE� ZF G dX� dYeE� ZG G dZ� d[� ZH G d\� d]eE� ZI G d^� d_eE� ZJ G d`� daeC� ZK G db� dceK� ZL G dd� deeE� ZM G df� dgeB� ZN G dh� dieB� ZO G dj� dkeE� ZP G dl� dmeE� ZQ G dn� doeE� ZR G dp� dqeE� ZS G dr� dseC� ZT G dt� dueB� ZU G dv� dw� ZVy# e$ r
d dlmZ Y ���w xY w)y� )�print_function)�MutableMapping)�strftimeN)�reduce� )�lib�_RAW_CB_TYPE�
_LOST_CB_TYPE�_RINGBUF_CB_TYPE�bcc_perf_buffer_opts)�get_online_cpus)�get_possible_cpus� � � � � � � � �
� � �
� � � � � � � � � � � � � � � � �HASH�ARRAY�
PROG_ARRAY�PERF_EVENT_ARRAY�PERCPU_HASH�PERCPU_ARRAY�STACK_TRACE�CGROUP_ARRAY�LRU_HASH�LRU_PERCPU_HASH�LPM_TRIE�
ARRAY_OF_MAPS�HASH_OF_MAPS�DEVMAP�SOCKMAP�CPUMAP�XSKMAP�SOCKHASH�CGROUP_STORAGE�REUSEPORT_SOCKARRAY�PERCPU_CGROUP_STORAGE�QUEUE�STACK�
SK_STORAGE�DEVMAP_HASH�
STRUCT_OPS�RINGBUF�
INODE_STORAGE�TASK_STORAGE�( �A i c �n � d}d} ||| z |z dz
kD s||dz
kD rn|dz
}|dz
}�"| |kD r|d d dz }|S )Nr � r �*����+� )�val�val_max�width�i�texts �+/usr/lib/python3/dist-packages/bcc/table.py�_starsrV c sf � � �A�
�D��
����w�&�!�+�+��U�Q�Y������� �Q���
�
�W�}��C�R�y�3����K� c � � t | |d �� S )N)�section_bucket)�_get_json_hist)�vals�val_typerY s rU �
get_json_histr] o s � ��$���>�>rW c �b � g }d}t t | � � D ]
}| | dk7 s�|}� d}d}t t | � � D ]O }|dk7 s� ||k s�|dz }i }||d< |