All classes:
- websocket._exceptions.WebSocketException
- websocket._exceptions.WebSocketProtocolException
- websocket._exceptions.WebSocketPayloadException
- websocket._exceptions.WebSocketConnectionClosedException
- websocket._exceptions.WebSocketTimeoutException
- websocket._exceptions.WebSocketProxyException
- websocket._exceptions.WebSocketBadStatusException
- websocket._exceptions.WebSocketAddressException
- websocket._utils.NoLock
- websocket._abnf.ABNF
- websocket._abnf.frame_buffer
- websocket._abnf.continuous_frame
- websocket._logging.NullHandler
- websocket._cookiejar.SimpleCookieJar
- websocket._ssl_compat.SSLError
- websocket._ssl_compat.SSLWantReadError
- websocket._ssl_compat.SSLWantWriteError
- websocket._http.ProxyError
- websocket._http.ProxyTimeoutError
- websocket._http.ProxyConnectionError
- websocket._http.proxy_info
- websocket._handshake.handshake_response
- websocket._core.WebSocket
- websocket._app.DispatcherBase
- websocket._app.Dispatcher
- websocket._app.SSLDispatcher
- websocket._app.WrappedDispatcher
- websocket._app.WebSocketApp
- '...fuzz_http.FuzzMock'
- websocket._wsdump.VAction
- websocket._wsdump.RawInput
- websocket._wsdump.InteractiveConsole
- websocket._wsdump.NonInteractive
- websocket._socket.sock_opt
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_http'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - atheris.instrument_all
    - '...fuzz_http.main'
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - packet
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: '...fuzz_http.FuzzMock.__init__'
    functionSourceFile: '...fuzz_http'
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: '...fuzz_http.FuzzMock.gettimeout'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: '...fuzz_http.FuzzMock.recv'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 58
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 59
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: '...fuzz_http.FuzzMock.send'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 47
    functionName: '...fuzz_http.TestOneInput'
    functionSourceFile: '...fuzz_http'
    functionUses: 0
    functionsReached:
    - _logger.debug
    - '...fuzz_http.FuzzMock.__init__'
    - websocket._logging.debug
    - fdp.ConsumeBytes
    - <builtin>.len
    - line.split
    - auth_str.encode
    - websocket._http.read_headers
    - websocket._logging.dump
    - value.strip
    - base64.encodebytes
    - websocket._logging.trace
    - fdp.ConsumeUnicodeNoSurrogates
    - line.decode
    - key.lower
    - fdp.ConsumeIntInRange
    - websocket._http._tunnel
    - atheris.FuzzedDataProvider
    - base64.encodebytes.strip
    - <builtin>.int
    - headers.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeBytes
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeIntInRange
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - host
    - port
    - auth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 276
    functionName: websocket._http._tunnel
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - line.split
    - websocket._http.read_headers
    - websocket._logging.trace
    - websocket._logging.dump
    - auth_str.encode
    - value.strip
    - line.decode
    - key.lower
    - _logger.debug
    - base64.encodebytes.strip
    - base64.encodebytes
    - websocket._logging.debug
    - <builtin>.int
    - <builtin>.len
    - headers.get
    linkageType: pythonLinkage
    raised:
    - WebSocketProxyException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: '...fuzz_http.main'
    functionSourceFile: '...fuzz_http'
    functionUses: 1
    functionsReached:
    - atheris.instrument_all
    - atheris.Fuzz
    - atheris.Setup
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_all
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._http
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: websocket._http.proxy_info.__init__
    functionSourceFile: websocket._http
    functionUses: 12
    functionsReached:
    - options.get
    linkageType: pythonLinkage
    raised:
    - ProxyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.get
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 72
    functionName: websocket._http._start_proxied_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    - context.load_verify_locations
    - <builtin>.dict
    - user_sslopt.get
    - websocket._url.parse_url
    - ssl.SSLContext
    - context.set_ecdh_curve
    - context.load_cert_chain
    - python_socks.sync.Proxy.create
    - websocket._http._ssl_socket
    - os.environ.get
    - ws_proxy.connect
    - context.wrap_socket
    - urllib.parse.urlparse
    - context.load_default_certs
    - os.path.isfile
    - sslopt.get
    - url.split
    - sslopt.update
    - websocket._http._wrap_sni_socket
    - context.set_ciphers
    - os.path.isdir
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: websocket._url.parse_url
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - urllib.parse.urlparse
    - url.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: python_socks.sync.Proxy.create
    functionSourceFile: python_socks
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws_proxy.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - sock
    - user_sslopt
    - hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 255
    functionName: websocket._http._ssl_socket
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - context.load_default_certs
    - <builtin>.hasattr
    - os.environ.get
    - context.load_verify_locations
    - context.load_cert_chain
    - os.path.isfile
    - <builtin>.dict
    - sslopt.get
    - sslopt.update
    - websocket._http._wrap_sni_socket
    - context.set_ciphers
    - context.wrap_socket
    - user_sslopt.get
    - os.path.isdir
    - ssl.SSLContext
    - context.set_ecdh_curve
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 110
    functionName: websocket._http.connect
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached:
    - websocket._http._wrap_sni_socket
    - <builtin>.hasattr
    - websocket._url._is_no_proxy_host
    - env_keys.insert
    - context.load_verify_locations
    - _logger.debug
    - <builtin>.dict
    - websocket._http._open_socket
    - websocket._url.parse_url
    - user_sslopt.get
    - websocket._logging.debug
    - ssl.SSLContext
    - websocket._http._start_proxied_socket
    - <builtin>.len
    - context.set_ecdh_curve
    - line.split
    - net.split
    - os.path.isdir
    - context.load_cert_chain
    - auth_str.encode
    - sock.setsockopt
    - websocket._url._is_ip_address
    - websocket._url.get_proxy_info
    - python_socks.sync.Proxy.create
    - sock.settimeout
    - websocket._url._is_address_in_network
    - context.set_ciphers
    - urllib.parse.unquote
    - websocket._http._ssl_socket
    - hostname.split
    - websocket._http.read_headers
    - websocket._logging.dump
    - os.environ.get
    - struct.unpack
    - <builtin>.str
    - ws_proxy.connect
    - websocket._url._is_subnet_address
    - value.strip
    - socket.inet_aton
    - domain.startswith
    - socket.socket
    - context.wrap_socket
    - urllib.parse.urlparse
    - base64.encodebytes
    - context.load_default_certs
    - key.upper
    - websocket._logging.trace
    - sock.connect
    - websocket._http._get_addrinfo_list
    - os.path.isfile
    - line.decode
    - key.lower
    - hostname.endswith
    - url.split
    - socket.getaddrinfo
    - websocket._http._tunnel
    - v.split
    - base64.encodebytes.strip
    - sslopt.get
    - <builtin>.any
    - sock.close
    - sslopt.update
    - <builtin>.int
    - headers.get
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - hostname
    - port
    - is_secure
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 147
    functionName: websocket._http._get_addrinfo_list
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - websocket._url._is_no_proxy_host
    - env_keys.insert
    - net.split
    - websocket._url._is_ip_address
    - websocket._url.get_proxy_info
    - websocket._url._is_address_in_network
    - urllib.parse.unquote
    - hostname.split
    - os.environ.get
    - struct.unpack
    - websocket._url._is_subnet_address
    - socket.inet_aton
    - domain.startswith
    - urllib.parse.urlparse
    - key.upper
    - hostname.endswith
    - socket.getaddrinfo
    - v.split
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketAddressException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - addrinfo_list
    - sockopt
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: websocket._http._open_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - <builtin>.str
    - sock.connect
    - sock.setsockopt
    - sock.settimeout
    - socket.socket
    - sock.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba0bdc10>
    - <ast.Constant object at 0x7ff4ba0bdd60>
    - <ast.Constant object at 0x7ff4ba0bd940>
    - <ast.Constant object at 0x7ff4ba0bd160>
    - <ast.Constant object at 0x7ff4ba0bda30>
    argNames:
    - hostname
    - is_secure
    - proxy_host
    - proxy_port
    - proxy_auth
    - no_proxy
    - proxy_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 124
    functionName: websocket._url.get_proxy_info
    functionSourceFile: websocket._url
    functionUses: 2
    functionsReached:
    - hostname.split
    - key.upper
    - websocket._url._is_no_proxy_host
    - env_keys.insert
    - net.split
    - os.environ.get
    - struct.unpack
    - websocket._url._is_subnet_address
    - websocket._url._is_ip_address
    - hostname.endswith
    - socket.inet_aton
    - v.split
    - domain.startswith
    - urllib.parse.urlparse
    - <builtin>.any
    - websocket._url._is_address_in_network
    - <builtin>.int
    - urllib.parse.unquote
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.getaddrinfo
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.socket
    functionSourceFile: socket
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.settimeout
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.setsockopt
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - sslopt
    - hostname
    - check_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 210
    functionName: websocket._http._wrap_sni_socket
    functionSourceFile: websocket._http
    functionUses: 3
    functionsReached:
    - context.load_default_certs
    - <builtin>.hasattr
    - context.load_verify_locations
    - context.load_cert_chain
    - sslopt.get
    - context.set_ciphers
    - context.wrap_socket
    - ssl.SSLContext
    - context.set_ecdh_curve
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.SSLContext
    functionSourceFile: ssl
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_verify_locations
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_default_certs
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_cert_chain
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ciphers
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ecdh_curve
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.wrap_socket
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dict
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.get
    functionSourceFile: os
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isfile
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: user_sslopt.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isdir
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: websocket._logging.debug
    functionSourceFile: websocket._logging
    functionUses: 18
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: auth_str.encode
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes
    functionSourceFile: base64
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes.strip
    functionSourceFile: base64
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - title
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: websocket._logging.dump
    functionSourceFile: websocket._logging
    functionUses: 16
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 305
    functionName: websocket._http.read_headers
    functionSourceFile: websocket._http
    functionUses: 17
    functionsReached:
    - line.split
    - websocket._logging.trace
    - value.strip
    - line.decode
    - key.lower
    - _logger.debug
    - <builtin>.int
    - <builtin>.len
    - headers.get
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: websocket._logging.trace
    functionSourceFile: websocket._logging
    functionUses: 43
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.decode
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.split
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.lower
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.get
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.strip
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._ssl_compat
    functionSourceFile: websocket._ssl_compat
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._exceptions
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba252850>
    - <ast.Constant object at 0x7ff4ba252490>
    - <ast.Constant object at 0x7ff4ba252e20>
    argNames:
    - self
    - message
    - status_code
    - status_message
    - resp_headers
    - resp_body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: websocket._exceptions.WebSocketBadStatusException.__init__
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket
    functionSourceFile: websocket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._app
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - reconnectInterval
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: websocket._app.setReconnect
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: websocket._app.DispatcherBase.__init__
    functionSourceFile: websocket._app
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 54
    functionName: websocket._app.DispatcherBase.timeout
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.timeout
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - cookie.update
    - websocket._core.WebSocket.recv_data
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - v.get
    - headers.extend
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - domain.startswith
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.sleep
    functionSourceFile: time
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba05a310>
    argNames:
    - reconnecting
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 387
    functionName: websocket._app.WebSocketApp.run_forever.setSock
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.timeout
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - cookie.update
    - websocket._core.WebSocket.recv_data
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - v.get
    - headers.extend
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - domain.startswith
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 452
    functionName: websocket._app.WebSocketApp.run_forever.check
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - time.time
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 58
    functionName: websocket._app.DispatcherBase.reconnect
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.timeout
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - cookie.update
    - websocket._core.WebSocket.recv_data
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - selectors.DefaultSelector
    - sel.select
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - v.get
    - headers.extend
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - domain.startswith
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.stack
    functionSourceFile: inspect
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: websocket._logging.info
    functionSourceFile: websocket._logging
    functionUses: 11
    functionsReached:
    - _logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 72
    functionName: websocket._app.Dispatcher.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._logging.dump
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - websocket._core.WebSocket.recv_data
    - cookie.update
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - websocket._abnf.ABNF._get_masked
    - headers.extend
    - v.get
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - websocket._abnf.frame_buffer.has_received_header
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selectors.DefaultSelector
    functionSourceFile: selectors
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.register
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.select
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 419
    functionName: websocket._app.WebSocketApp.run_forever.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._logging.dump
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - websocket._core.WebSocket.recv_data
    - cookie.update
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - struct.pack
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - websocket._abnf.ABNF._get_masked
    - headers.extend
    - v.get
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - websocket._abnf.frame_buffer.has_received_header
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.close
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 89
    functionName: websocket._app.SSLDispatcher.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._logging.dump
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - websocket._core.WebSocket.recv_data
    - cookie.update
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - websocket._abnf.ABNF._get_masked
    - headers.extend
    - v.get
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - websocket._abnf.frame_buffer.has_received_header
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: websocket._app.SSLDispatcher.select
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - sel.select
    - sock.pending
    - sel.close
    - selectors.DefaultSelector
    - <builtin>.len
    - sel.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.pending
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    - dispatcher
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: websocket._app.WrappedDispatcher.__init__
    functionSourceFile: websocket._app
    functionUses: 2
    functionsReached:
    - dispatcher.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dispatcher.signal
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 122
    functionName: websocket._app.WrappedDispatcher.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._logging.dump
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - websocket._core.WebSocket.recv_data
    - cookie.update
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - websocket._abnf.ABNF._get_masked
    - headers.extend
    - v.get
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - websocket._abnf.frame_buffer.has_received_header
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 126
    functionName: websocket._app.WrappedDispatcher.timeout
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - url.split
    - websocket._abnf.ABNF.mask
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - cookie.update
    - websocket._core.WebSocket.recv_data
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - v.get
    - headers.extend
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - domain.startswith
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 19
    functionLinenumber: 129
    functionName: websocket._app.WrappedDispatcher.reconnect
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - url.split
    - websocket._abnf.ABNF.mask
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - cookie.update
    - websocket._core.WebSocket.recv_data
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - v.get
    - headers.extend
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - domain.startswith
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 16
    argDefaultValues:
    - <ast.Constant object at 0x7ff4b9f1e730>
    - <ast.Constant object at 0x7ff4b9f1e460>
    - <ast.Constant object at 0x7ff4b9f1ecd0>
    - <ast.Constant object at 0x7ff4b9f1e490>
    - <ast.Constant object at 0x7ff4b9f1ef10>
    - <ast.Constant object at 0x7ff4b9f1e070>
    - <ast.Constant object at 0x7ff4b9f1e310>
    - <ast.Constant object at 0x7ff4b9f1ec10>
    - <ast.Constant object at 0x7ff4b9f1e0d0>
    - <ast.Constant object at 0x7ff4b9f1e640>
    - <ast.Constant object at 0x7ff4b9f1e580>
    - <ast.Constant object at 0x7ff4b9f1e610>
    - <ast.Constant object at 0x7ff4b9f1e9d0>
    - <ast.Constant object at 0x7ff4b9f1ec70>
    argNames:
    - self
    - url
    - header
    - on_open
    - on_message
    - on_error
    - on_close
    - on_ping
    - on_pong
    - on_cont_message
    - keep_running
    - get_mask_key
    - cookie
    - subprotocols
    - on_data
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 138
    functionName: websocket._app.WebSocketApp.__init__
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7ff4ba282520>
    argNames:
    - self
    - data
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 230
    functionName: websocket._app.WebSocketApp.send
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7ff4ba1a9a30>
    argNames:
    - self
    - payload
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 268
    functionName: websocket._core.WebSocket.send
    functionSourceFile: websocket._core
    functionUses: 35
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.send
    - <builtin>.len
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 247
    functionName: websocket._app.WebSocketApp.close
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_length
    - _logger.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - time.time
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - websocket._utils.validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - websocket._core.WebSocket.shutdown
    - os.urandom
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - <builtin>.any
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._logging.isEnabledForError
    - websocket._abnf.ABNF.validate
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.__init__
    - _logger.isEnabledFor
    - websocket._abnf.ABNF.mask
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7ff4b9e6a5e0>
    - <ast.Constant object at 0x7ff4b9e6a5b0>
    - <ast.Constant object at 0x7ff4b9e6a580>
    argNames:
    - self
    - status
    - reason
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 463
    functionName: websocket._core.WebSocket.close
    functionSourceFile: websocket._core
    functionUses: 13
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_length
    - _logger.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - time.time
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - websocket._utils.validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - websocket._core.WebSocket.shutdown
    - os.urandom
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - <builtin>.any
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._logging.isEnabledForError
    - websocket._abnf.ABNF.validate
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.__init__
    - _logger.isEnabledFor
    - websocket._abnf.ABNF.mask
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 256
    functionName: websocket._app.WebSocketApp._start_ping_thread
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - threading.Event
    - threading.Thread
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Event
    functionSourceFile: threading
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Thread
    functionSourceFile: threading
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 263
    functionName: websocket._app.WebSocketApp._stop_ping_thread
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 270
    functionName: websocket._app.WebSocketApp._send_ping
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - time.time
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - websocket._logging.debug
    - websocket._core.WebSocket.ping
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.time
    functionSourceFile: time
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba2ec2b0>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 327
    functionName: websocket._core.WebSocket.ping
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 18
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba6a0b20>
    - <ast.Constant object at 0x7ff4ba4af970>
    - <ast.Constant object at 0x7ff4ba4afc70>
    - <ast.Constant object at 0x7ff4ba252e20>
    - <ast.Constant object at 0x7ff4ba252490>
    - <ast.Constant object at 0x7ff4ba252850>
    - <ast.Constant object at 0x7ff4ba252e80>
    - <ast.Constant object at 0x7ff4ba252310>
    - <ast.Constant object at 0x7ff4ba252d60>
    - <ast.Constant object at 0x7ff4ba252f70>
    - <ast.Constant object at 0x7ff4ba252550>
    - <ast.Constant object at 0x7ff4ba2525b0>
    - <ast.Constant object at 0x7ff4ba2524c0>
    - <ast.Constant object at 0x7ff4ba252dc0>
    - <ast.Constant object at 0x7ff4ba252370>
    - <ast.Constant object at 0x7ff4ba2524f0>
    - <ast.Constant object at 0x7ff4ba6523a0>
    argNames:
    - self
    - sockopt
    - sslopt
    - ping_interval
    - ping_timeout
    - ping_payload
    - http_proxy_host
    - http_proxy_port
    - http_no_proxy
    - http_proxy_auth
    - http_proxy_timeout
    - skip_utf8_validation
    - host
    - origin
    - dispatcher
    - suppress_origin
    - proxy_type
    - reconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 282
    functionName: websocket._app.WebSocketApp.run_forever
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._url.parse_url
    - dispatcher.signal
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - url.split
    - websocket._abnf.ABNF.mask
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - <builtin>.bool
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - websocket._app.WebSocketApp.create_dispatcher
    - hashlib.sha1
    - _logger.isEnabledFor
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - cookie.update
    - websocket._core.WebSocket.recv_data
    - websocket._app.DispatcherBase.__init__
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - selectors.DefaultSelector
    - r.split
    - sel.select
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - websocket._app.WebSocketApp.run_forever.read
    - struct.pack
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.repr
    - websocket._app.WebSocketApp._get_close_args
    - websocket._app.WrappedDispatcher.__init__
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - v.get
    - headers.extend
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - domain.startswith
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._handshake._create_sec_websocket_key
    - urllib.parse.urlparse
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba05aca0>
    argNames:
    - close_frame
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 365
    functionName: websocket._app.WebSocketApp.run_forever.teardown
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._app.WebSocketApp._get_close_args
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_length
    - _logger.debug
    - mask_key.encode
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - time.time
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - websocket._utils.validate_utf8
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - websocket._core.WebSocket.shutdown
    - os.urandom
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - websocket._app.WebSocketApp._stop_ping_thread
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - <builtin>.any
    - websocket._abnf.continuous_frame.add
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._abnf.ABNF.validate
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.__init__
    - _logger.isEnabledFor
    - websocket._abnf.ABNF.mask
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - close_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 504
    functionName: websocket._app.WebSocketApp._get_close_args
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 523
    functionName: websocket._app.WebSocketApp._callback
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - _logger.error
    - websocket._logging.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 515
    functionName: websocket._core.WebSocket.shutdown
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7ff4b9e66220>
    - <ast.Constant object at 0x7ff4b9e661f0>
    - <ast.Constant object at 0x7ff4b9e661c0>
    - <ast.Constant object at 0x7ff4b9e66190>
    - <ast.Constant object at 0x7ff4b9e66160>
    - <ast.Constant object at 0x7ff4b9e66130>
    argNames:
    - self
    - get_mask_key
    - sockopt
    - sslopt
    - fire_cont_frame
    - enable_multithread
    - skip_utf8_validation
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 76
    functionName: websocket._core.WebSocket.__init__
    functionSourceFile: websocket._core
    functionUses: 12
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.continuous_frame.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 147
    functionName: websocket._core.WebSocket.settimeout
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 201
    functionName: websocket._core.WebSocket.connect
    functionSourceFile: websocket._core
    functionUses: 11
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - simpleCookie.items
    - s.lower
    - <builtin>.isinstance
    - subproto.lower
    - cookie.update
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._http.proxy_info.__init__
    - cookies.append
    - _logger.debug
    - websocket._handshake.handshake
    - result.encode
    - cookie.items
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.len
    - os.urandom
    - line.split
    - websocket._handshake.handshake_response.__init__
    - <builtin>.range
    - websocket._logging.error
    - <builtin>.sorted
    - x.strip
    - websocket._handshake._pack_hostname
    - host.lower
    - _logger.error
    - r.split
    - websocket._http.read_headers
    - base64.encodebytes.decode
    - websocket._logging.dump
    - v.get
    - header.items
    - headers.extend
    - <builtin>.str
    - options.get
    - value.strip
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - domain.lower
    - websocket._handshake._validate
    - _HEADERS_TO_CHECK.items
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - base64.encodebytes
    - <builtin>.filter
    - result.lower
    - websocket._logging.trace
    - websocket._cookiejar.SimpleCookieJar.add
    - headers.append
    - hmac.compare_digest
    - line.decode
    - key.lower
    - hashlib.sha1
    - url.split
    - host.endswith
    - base64.encodebytes.strip
    - <builtin>.int
    - headers.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba061370>
    argNames:
    - e
    - reconnecting
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 464
    functionName: websocket._app.WebSocketApp.run_forever.handleDisconnect
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.ABNF.__str__
    - result.encode
    - websocket._app.DispatcherBase.timeout
    - websocket._abnf.continuous_frame.__init__
    - os.urandom
    - line.split
    - websocket._app.WrappedDispatcher.timeout
    - websocket._core.WebSocket.shutdown
    - websocket._app.WrappedDispatcher.read
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._core.WebSocket.__init__
    - websocket._app.WebSocketApp.run_forever.setSock
    - websocket._core.WebSocket.send_close
    - x.strip
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - _logger.error
    - websocket._abnf.frame_buffer.has_mask
    - websocket._app.SSLDispatcher.select
    - header.items
    - struct.unpack
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.connect
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - result.lower
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - headers.append
    - websocket._abnf.ABNF._is_valid_close_status
    - time.sleep
    - line.decode
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.mask
    - url.split
    - host.endswith
    - threading.Thread
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - <builtin>.chr
    - websocket._handshake.handshake
    - options.pop
    - websocket._handshake._get_handshake_headers
    - <builtin>.min
    - websocket._app.WebSocketApp._start_ping_thread
    - websocket._app.DispatcherBase.reconnect
    - websocket._core.WebSocket.settimeout
    - websocket._logging.error
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.close
    - websocket._handshake._pack_hostname
    - data.encode
    - websocket._core.WebSocket.pong
    - base64.encodebytes.decode
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._logging.dump
    - websocket._abnf.continuous_frame.extract
    - <builtin>.str
    - payload.encode
    - _HEADERS_TO_CHECK.items
    - websocket._core.WebSocket.recv
    - websocket._app.SSLDispatcher.read
    - key.lower
    - websocket._utils._validate_utf8
    - _logger.isEnabledFor
    - hashlib.sha1
    - <builtin>.any
    - websocket._logging.info
    - <builtin>.int
    - headers.get
    - websocket._abnf.frame_buffer.clear
    - s.lower
    - websocket._abnf.ABNF.format
    - subproto.lower
    - websocket._core.WebSocket.recv_data
    - cookie.update
    - _logger.debug
    - threading.Lock
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - websocket._logging.debug
    - <builtin>.range
    - <builtin>.sorted
    - int.from_bytes
    - sel.select
    - selectors.DefaultSelector
    - r.split
    - sock.pending
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._stop_ping_thread
    - options.get
    - struct.pack
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._abnf.frame_buffer.recv_frame
    - base64.encodebytes
    - <builtin>.filter
    - websocket._cookiejar.SimpleCookieJar.add
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._app.WebSocketApp._get_close_args
    - <builtin>.repr
    - websocket._abnf._mask
    - simpleCookie.items
    - websocket._utils._decode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._http.proxy_info.__init__
    - websocket._abnf.frame_buffer.has_received_mask
    - time.time
    - cookie.items
    - websocket._abnf.ABNF.create_frame
    - _logger.info
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - threading.Event
    - websocket._app.Dispatcher.read
    - websocket._handshake.handshake_response.__init__
    - inspect.stack
    - host.lower
    - websocket._abnf.frame_buffer.__init__
    - sel.register
    - websocket._abnf.ABNF._get_masked
    - headers.extend
    - v.get
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - value.strip
    - array.array
    - domain.lower
    - websocket._abnf.frame_buffer.has_received_header
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - sel.close
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._core.WebSocket.recv_data_frame
    - hmac.compare_digest
    - websocket._abnf.ABNF.__init__
    - base64.encodebytes.strip
    - websocket._abnf.continuous_frame.validate
    - data.decode
    - websocket._app.WebSocketApp.run_forever.teardown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba2b1370>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 388
    functionName: websocket._core.WebSocket.recv_data_frame
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.send
    - <builtin>.len
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.decode
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: websocket._logging.error
    functionSourceFile: websocket._logging
    functionUses: 18
    functionsReached:
    - _logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bool
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba06a700>
    - <ast.Constant object at 0x7ff4ba06a6d0>
    argNames:
    - self
    - ping_timeout
    - dispatcher
    - is_ssl
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 495
    functionName: websocket._app.WebSocketApp.create_dispatcher
    functionSourceFile: websocket._app
    functionUses: 1
    functionsReached:
    - websocket._app.DispatcherBase.__init__
    - websocket._app.WrappedDispatcher.__init__
    - dispatcher.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._url
    functionSourceFile: websocket._url
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: url.split
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlparse
    functionSourceFile: urllib
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 78
    functionName: websocket._url._is_ip_address
    functionSourceFile: websocket._url
    functionUses: 5
    functionsReached:
    - socket.inet_aton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.inet_aton
    functionSourceFile: socket
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 87
    functionName: websocket._url._is_subnet_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - websocket._url._is_ip_address
    - hostname.split
    - <builtin>.int
    - socket.inet_aton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hostname.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - ip
    - net
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: websocket._url._is_address_in_network
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - struct.unpack
    - <builtin>.int
    - socket.inet_aton
    - net.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.unpack
    functionSourceFile: struct
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: net.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - hostname
    - no_proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 104
    functionName: websocket._url._is_no_proxy_host
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - hostname.split
    - net.split
    - os.environ.get
    - struct.unpack
    - websocket._url._is_subnet_address
    - websocket._url._is_ip_address
    - hostname.endswith
    - socket.inet_aton
    - v.split
    - domain.startswith
    - websocket._url._is_address_in_network
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.startswith
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hostname.endswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env_keys.insert
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.upper
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.unquote
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._logging
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - logging.NullHandler
    - logging.getLogger
    - _logger.addHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.getLogger
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: websocket._logging.NullHandler.emit
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.NullHandler
    functionSourceFile: logging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.addHandler
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Call object at 0x7ff4ba2b1160>
    - <ast.Constant object at 0x7ff4ba2b1b80>
    argNames:
    - traceable
    - handler
    - level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: websocket._logging.enableTrace
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - _logger.setLevel
    - _logger.addHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.setLevel
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.debug
    functionSourceFile: <builtin>
    functionUses: 46
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.error
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: websocket._logging.warning
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.warning
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.info
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: websocket._logging.isEnabledForError
    functionSourceFile: websocket._logging
    functionUses: 14
    functionsReached:
    - _logger.isEnabledFor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _logger.isEnabledFor
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: websocket._logging.isEnabledForDebug
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.isEnabledFor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: websocket._logging.isEnabledForTrace
    functionSourceFile: websocket._logging
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._core
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - recv_fn
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: websocket._abnf.frame_buffer.__init__
    functionSourceFile: websocket._abnf
    functionUses: 13
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fire_cont_frame
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 389
    functionName: websocket._abnf.continuous_frame.__init__
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Lock
    functionSourceFile: threading
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 105
    functionName: websocket._core.WebSocket.__iter__
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 353
    functionName: websocket._core.WebSocket.recv
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 112
    functionName: websocket._core.WebSocket.__next__
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 115
    functionName: websocket._core.WebSocket.next
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.__next__
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 118
    functionName: websocket._core.WebSocket.fileno
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 121
    functionName: websocket._core.WebSocket.set_mask_key
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 136
    functionName: websocket._core.WebSocket.gettimeout
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.property
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._core.WebSocket
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.property
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 162
    functionName: websocket._core.WebSocket.getsubprotocol
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 173
    functionName: websocket._core.WebSocket.getstatus
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 184
    functionName: websocket._core.WebSocket.getheaders
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 193
    functionName: websocket._core.WebSocket.is_ssl
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.pop
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - sock
    - url
    - hostname
    - port
    - resource
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 50
    functionName: websocket._handshake.handshake
    functionSourceFile: websocket._handshake
    functionUses: 12
    functionsReached:
    - sock.recv
    - http.cookies.SimpleCookie
    - simpleCookie.items
    - s.lower
    - <builtin>.isinstance
    - subproto.lower
    - cookie.update
    - websocket._cookiejar.SimpleCookieJar.get
    - cookies.append
    - _logger.debug
    - result.encode
    - cookie.items
    - websocket._handshake._get_handshake_headers
    - <builtin>.len
    - os.urandom
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._logging.error
    - <builtin>.sorted
    - x.strip
    - websocket._handshake._pack_hostname
    - host.lower
    - _logger.error
    - r.split
    - websocket._http.read_headers
    - base64.encodebytes.decode
    - websocket._logging.dump
    - v.get
    - header.items
    - headers.extend
    - <builtin>.str
    - options.get
    - value.strip
    - domain.lower
    - websocket._handshake._get_resp_headers
    - websocket._handshake._validate
    - _HEADERS_TO_CHECK.items
    - domain.startswith
    - websocket._handshake._create_sec_websocket_key
    - base64.encodebytes
    - <builtin>.filter
    - result.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.trace
    - headers.append
    - hmac.compare_digest
    - line.decode
    - key.lower
    - hashlib.sha1
    - url.split
    - host.endswith
    - base64.encodebytes.strip
    - <builtin>.int
    - headers.get
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba429850>
    argNames:
    - data
    - opcode
    - fin
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 190
    functionName: websocket._abnf.ABNF.create_frame
    functionSourceFile: websocket._abnf
    functionUses: 36
    functionsReached:
    - websocket._abnf.ABNF.__init__
    - data.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 285
    functionName: websocket._core.WebSocket.send_frame
    functionSourceFile: websocket._core
    functionUses: 35
    functionsReached:
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.send
    - <builtin>.len
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 210
    functionName: websocket._abnf.ABNF.format
    functionSourceFile: websocket._abnf
    functionUses: 36
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._get_masked
    - os.urandom
    - array.array
    - mask_key.encode
    - struct.pack
    - <builtin>.chr
    - websocket._abnf.ABNF.mask
    - int.from_bytes
    - <builtin>.any
    - data.encode
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.frame_buffer.has_mask
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.repr
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: websocket._abnf.ABNF.__str__
    functionSourceFile: websocket._abnf
    functionUses: 36
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 524
    functionName: websocket._core.WebSocket._send
    functionSourceFile: websocket._core
    functionUses: 35
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 316
    functionName: websocket._core.WebSocket.send_binary
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.encode
    functionSourceFile: <builtin>
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba183ee0>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 340
    functionName: websocket._core.WebSocket.pong
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4b9f1ec10>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 370
    functionName: websocket._core.WebSocket.recv_data
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - websocket._core.WebSocket.send
    - <builtin>.len
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 437
    functionName: websocket._core.WebSocket.recv_frame
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_length
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.__str__
    - _logger.debug
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - <builtin>.min
    - websocket._core.WebSocket.send
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 395
    functionName: websocket._abnf.continuous_frame.validate
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 402
    functionName: websocket._abnf.continuous_frame.add
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 413
    functionName: websocket._abnf.continuous_frame.is_fire
    functionSourceFile: ''
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 416
    functionName: websocket._abnf.continuous_frame.extract
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._utils._decode
    - websocket._utils._validate_utf8
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketPayloadException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7ff4b9e6adc0>
    - <ast.Constant object at 0x7ff4b9e6ad90>
    argNames:
    - self
    - status
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 447
    functionName: websocket._core.WebSocket.send_close
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.ABNF.create_frame
    - websocket._logging.isEnabledForTrace
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - int.from_bytes
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket._send
    - websocket._abnf.ABNF._get_masked
    - <builtin>.str
    - array.array
    - struct.pack
    - <builtin>.any
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.repr
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 333
    functionName: websocket._abnf.frame_buffer.recv_frame
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - <builtin>.isinstance
    - websocket._abnf.ABNF.format
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.recv_length
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.__str__
    - _logger.debug
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - <builtin>.min
    - websocket._core.WebSocket.send
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._core.WebSocket._send
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.pack
    functionSourceFile: struct
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 508
    functionName: websocket._core.WebSocket.abort
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 527
    functionName: websocket._core.WebSocket._recv
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - <builtin>.min
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7ff4b9e5c670>
    - <ast.Name object at 0x7ff4b9e5c640>
    argNames:
    - url
    - timeout
    - class_
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 538
    functionName: websocket._core.create_connection
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._core.WebSocket.__init__
    - threading.Lock
    - websock.settimeout
    - websocket._abnf.continuous_frame.__init__
    - options.pop
    - websocket._abnf.frame_buffer.__init__
    - websock.connect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websock.settimeout
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websock.connect
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: websocket._handshake
    functionSourceFile: websocket._handshake
    functionUses: 0
    functionsReached:
    - websocket._cookiejar.SimpleCookieJar.__init__
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: websocket._cookiejar.SimpleCookieJar.__init__
    functionSourceFile: websocket._cookiejar
    functionUses: 1
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - subprotocol
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: websocket._handshake.handshake_response.__init__
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - http.cookies.SimpleCookie
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.add
    - v.get
    - cookie.update
    - domain.lower
    - domain.startswith
    - headers.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: websocket._cookiejar.SimpleCookieJar.add
    functionSourceFile: websocket._cookiejar
    functionUses: 14
    functionsReached:
    - http.cookies.SimpleCookie
    - simpleCookie.items
    - v.get
    - cookie.update
    - domain.lower
    - domain.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 14
    IfCount: 12
    argCount: 5
    argDefaultValues: []
    argNames:
    - resource
    - url
    - host
    - port
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: websocket._handshake._get_handshake_headers
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - base64.encodebytes.decode
    - <builtin>.isinstance
    - websocket._cookiejar.SimpleCookieJar.get
    - header.items
    - headers.append
    - headers.extend
    - options.get
    - cookies.append
    - url.split
    - <builtin>.sorted
    - host.lower
    - host.endswith
    - cookie.items
    - websocket._handshake._create_sec_websocket_key
    - websocket._handshake._pack_hostname
    - base64.encodebytes
    - <builtin>.filter
    - os.urandom
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7ff4ba1eb4f0>
    argNames:
    - sock
    - success_statuses
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 144
    functionName: websocket._handshake._get_resp_headers
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - line.split
    - websocket._http.read_headers
    - sock.recv
    - websocket._logging.trace
    - value.strip
    - key.lower
    - line.decode
    - _logger.debug
    - <builtin>.int
    - <builtin>.len
    - headers.get
    linkageType: pythonLinkage
    raised:
    - WebSocketBadStatusException
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - headers
    - key
    - subprotocols
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 158
    functionName: websocket._handshake._validate
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - s.lower
    - <builtin>.isinstance
    - subproto.lower
    - base64.encodebytes
    - <builtin>.str
    - websocket._logging.error
    - hmac.compare_digest
    - hashlib.sha1
    - x.strip
    - _HEADERS_TO_CHECK.items
    - result.encode
    - base64.encodebytes.strip
    - _logger.error
    - result.lower
    - r.split
    - headers.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: websocket._handshake._pack_hostname
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.append
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 193
    functionName: websocket._handshake._create_sec_websocket_key
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - base64.encodebytes
    - base64.encodebytes.decode
    - os.urandom
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.items
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.extend
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: websocket._cookiejar.SimpleCookieJar.get
    functionSourceFile: websocket._cookiejar
    functionUses: 14
    functionsReached:
    - cookies.append
    - <builtin>.sorted
    - host.endswith
    - cookie.items
    - host.lower
    - <builtin>.filter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.filter
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.recv
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _HEADERS_TO_CHECK.items
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x.strip
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: r.split
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: subproto.lower
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.lower
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.lower
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.encode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hmac.compare_digest
    functionSourceFile: hmac
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.urandom
    functionSourceFile: os
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.encodebytes.decode
    functionSourceFile: base64
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._cookiejar
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.cookies.SimpleCookie
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: simpleCookie.items
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.get
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookie.update
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: domain.lower
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: websocket._cookiejar.SimpleCookieJar.set
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached:
    - http.cookies.SimpleCookie
    - simpleCookie.items
    - v.get
    - domain.lower
    - domain.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.endswith
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookies.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cookie.items
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._abnf
    functionSourceFile: websocket._abnf
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_value
    - data_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: websocket._abnf._mask
    functionSourceFile: websocket._abnf
    functionUses: 39
    functionsReached:
    - int.from_bytes
    - wsaccel.xormask.XorMaskerSimple
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.xormask.XorMaskerSimple
    functionSourceFile: wsaccel
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.xormask.XorMaskerSimple.process
    functionSourceFile: wsaccel
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: int.from_bytes
    functionSourceFile: <builtin>
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba3984f0>
    - <ast.Constant object at 0x7ff4ba3984c0>
    - <ast.Constant object at 0x7ff4ba398490>
    - <ast.Constant object at 0x7ff4ba398460>
    - <ast.Name object at 0x7ff4ba398430>
    - <ast.Constant object at 0x7ff4ba398400>
    - <ast.Constant object at 0x7ff4ba3983d0>
    argNames:
    - self
    - fin
    - rsv1
    - rsv2
    - rsv3
    - opcode
    - mask
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: websocket._abnf.ABNF.__init__
    functionSourceFile: websocket._abnf
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba1ec640>
    argNames:
    - self
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 150
    functionName: websocket._abnf.ABNF.validate
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._utils._decode
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._utils._validate_utf8
    - websocket._utils.validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - <builtin>.len
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 86
    functionName: websocket._utils.validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 29
    functionsReached:
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 181
    functionName: websocket._abnf.ABNF._is_valid_close_status
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.encode
    functionSourceFile: <builtin>
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.chr
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - mask_key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 240
    functionName: websocket._abnf.ABNF._get_masked
    functionSourceFile: websocket._abnf
    functionUses: 37
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple.process
    - array.array
    - mask_key.encode
    - websocket._abnf.ABNF.mask
    - int.from_bytes
    - data.encode
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._abnf.frame_buffer.has_mask
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_key
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 249
    functionName: websocket._abnf.ABNF.mask
    functionSourceFile: websocket._abnf
    functionUses: 38
    functionsReached:
    - websocket._abnf._mask
    - <builtin>.isinstance
    - wsaccel.xormask.XorMaskerSimple.process
    - array.array
    - mask_key.encode
    - int.from_bytes
    - data.encode
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 307
    functionName: websocket._abnf.frame_buffer.has_mask
    functionSourceFile: ''
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mask_key.encode
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: array.array
    functionSourceFile: array
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 285
    functionName: websocket._abnf.frame_buffer.clear
    functionSourceFile: ''
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 290
    functionName: websocket._abnf.frame_buffer.has_received_header
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 293
    functionName: websocket._abnf.frame_buffer.recv_header
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - <builtin>.min
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._utils._validate_utf8
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 364
    functionName: websocket._abnf.frame_buffer.recv_strict
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - <builtin>.min
    - websocket._core.WebSocket.send
    - os.urandom
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 312
    functionName: websocket._abnf.frame_buffer.has_received_length
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 315
    functionName: websocket._abnf.frame_buffer.recv_length
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - <builtin>.min
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._utils._validate_utf8
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 327
    functionName: websocket._abnf.frame_buffer.has_received_mask
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 330
    functionName: websocket._abnf.frame_buffer.recv_mask
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf._mask
    - websocket._abnf.ABNF.format
    - <builtin>.isinstance
    - websocket._utils._decode
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.continuous_frame.is_fire
    - mask_key.encode
    - websocket._core.WebSocket.send_frame
    - _logger.debug
    - <builtin>.chr
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.frame_buffer.recv_strict
    - websocket._abnf.frame_buffer.recv_length
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._abnf.ABNF.create_frame
    - websocket._utils.validate_utf8
    - websocket._logging.isEnabledForTrace
    - <builtin>.map
    - wsaccel.xormask.XorMaskerSimple
    - <builtin>.len
    - websocket._core.WebSocket.send
    - os.urandom
    - <builtin>.min
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.send_close
    - int.from_bytes
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - data.encode
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket._send
    - websocket._abnf.frame_buffer.has_received_length
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF._get_masked
    - struct.unpack
    - <builtin>.str
    - array.array
    - payload.encode
    - struct.pack
    - websocket._abnf.continuous_frame.add
    - <builtin>.any
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._core.WebSocket.recv
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._core.WebSocket.recv_data_frame
    - websocket._utils._validate_utf8
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.continuous_frame.validate
    - <builtin>.repr
    - data.decode
    - <builtin>.sum
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.map
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sum
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket._utils
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: websocket._utils.NoLock.__enter__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: websocket._utils.NoLock.__exit__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: websocket._utils._validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 30
    functionsReached:
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator
    functionSourceFile: wsaccel
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator.validate
    functionSourceFile: wsaccel
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - state
    - codep
    - ch
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: websocket._utils._decode
    functionSourceFile: websocket._utils
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 95
    functionName: websocket._utils.extract_err_message
    functionSourceFile: websocket._utils
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: websocket._utils.extract_error_code
    functionSourceFile: websocket._utils
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: websocket._wsdump
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - code.InteractiveConsole.__init__
    - websocket._wsdump.NonInteractive.read
    - websocket._wsdump.InteractiveConsole.read
    - <builtin>.getattr
    - websocket.enableTrace
    - time.time
    - ws.send
    - parser.parse_args
    - argparse.ArgumentParser
    - parser.add_argument
    - <builtin>.map
    - thread.start
    - args.headers.split
    - <builtin>.list
    - <builtin>.input
    - websocket._wsdump.get_encoding
    - urllib.parse.urlparse
    - encoding.lower
    - websocket.create_connection
    - <builtin>.print
    - websocket._wsdump.parse_args
    - time.sleep
    - websocket._wsdump.RawInput.raw_input
    - websocket._wsdump.main
    - line.decode
    - threading.Thread
    - line.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: websocket._wsdump.get_encoding
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - encoding.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: encoding.lower
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba2911c0>
    argNames:
    - self
    - parser
    - args
    - values
    - option_string
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: websocket._wsdump.VAction.__call__
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - values.count
    - <builtin>.int
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: values.count
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.setattr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 11
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: websocket._wsdump.parse_args
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - parser.parse_args
    - argparse.ArgumentParser
    - parser.add_argument
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7ff4ba058910>
    argNames:
    - self
    - prompt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: websocket._wsdump.RawInput.raw_input
    functionSourceFile: websocket._wsdump
    functionUses: 4
    functionsReached:
    - line.encode
    - <builtin>.isinstance
    - <builtin>.input
    - line.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.input
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 109
    functionName: websocket._wsdump.InteractiveConsole.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.flush
    - sys.stdout.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.write
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.flush
    functionSourceFile: sys
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 116
    functionName: websocket._wsdump.InteractiveConsole.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.input
    - websocket._wsdump.RawInput.raw_input
    - line.decode
    - line.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: websocket._wsdump.NonInteractive.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.flush
    - sys.stdout.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 127
    functionName: websocket._wsdump.NonInteractive.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.input
    - websocket._wsdump.RawInput.raw_input
    - line.decode
    - line.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: websocket._wsdump.main
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - code.InteractiveConsole.__init__
    - websocket._wsdump.NonInteractive.read
    - websocket._wsdump.InteractiveConsole.read
    - websocket.enableTrace
    - time.time
    - ws.send
    - parser.parse_args
    - argparse.ArgumentParser
    - parser.add_argument
    - <builtin>.map
    - thread.start
    - args.headers.split
    - <builtin>.list
    - <builtin>.input
    - urllib.parse.urlparse
    - websocket.create_connection
    - websocket._wsdump.parse_args
    - <builtin>.print
    - time.sleep
    - websocket._wsdump.RawInput.raw_input
    - line.decode
    - threading.Thread
    - line.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.enableTrace
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.headers.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.create_connection
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: code.InteractiveConsole.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: websocket._wsdump.main.recv
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - ws.send_close
    - ws.pong
    - ws.recv_frame
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.recv_frame
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.send_close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.pong
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 175
    functionName: websocket._wsdump.main.recv_ws
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.len
    - websocket._wsdump.InteractiveConsole.write
    - ws.recv_frame
    - <builtin>.str
    - ws.pong
    - ws.send_close
    - sys.stdout.flush
    - websocket._wsdump.NonInteractive.write
    - zlib.decompress
    - gzip.decompress
    - time.time
    - websocket.ABNF.OPCODE_MAP.get
    - websocket._wsdump.main.recv
    - <builtin>.repr
    - sys.stdout.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gzip.decompress
    functionSourceFile: gzip
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: zlib.decompress
    functionSourceFile: zlib
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.ABNF.OPCODE_MAP.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: thread.start
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ws.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._socket
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - DEFAULT_SOCKET_OPTION.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: DEFAULT_SOCKET_OPTION.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sockopt
    - sslopt
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: websocket._socket.sock_opt.__init__
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - timeout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 56
    functionName: websocket._socket.setdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 69
    functionName: websocket._socket.getdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 81
    functionName: websocket._socket.recv
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - websocket._utils.extract_err_message
    - sock.recv
    - <builtin>.isinstance
    - websocket._utils.extract_error_code
    - sel.select
    - sock.gettimeout
    - websocket._socket.recv._recv
    - sel.close
    - selectors.DefaultSelector
    - <builtin>.len
    - sel.register
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 85
    functionName: websocket._socket.recv._recv
    functionSourceFile: websocket._socket
    functionUses: 2
    functionsReached:
    - sock.recv
    - websocket._utils.extract_error_code
    - <builtin>.isinstance
    - sock.gettimeout
    - selectors.DefaultSelector
    - sel.close
    - sel.select
    - <builtin>.len
    - sel.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.gettimeout
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 128
    functionName: websocket._socket.recv_line
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - websocket._utils.extract_err_message
    - sock.recv
    - <builtin>.isinstance
    - websocket._utils.extract_error_code
    - websocket._socket.recv
    - sel.select
    - line.append
    - sock.gettimeout
    - websocket._socket.recv._recv
    - sel.close
    - selectors.DefaultSelector
    - <builtin>.len
    - sel.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 138
    functionName: websocket._socket.send
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - websocket._utils.extract_err_message
    - <builtin>.isinstance
    - websocket._utils.extract_error_code
    - sel.select
    - sock.gettimeout
    - websocket._socket.send._send
    - sock.send
    - data.encode
    - sel.close
    - selectors.DefaultSelector
    - <builtin>.len
    - sel.register
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: websocket._socket.send._send
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - websocket._utils.extract_error_code
    - <builtin>.isinstance
    - sock.gettimeout
    - sock.send
    - selectors.DefaultSelector
    - sel.close
    - sel.select
    - <builtin>.len
    - sel.register
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_http':
  - 73
  - 74
  '...fuzz_http.FuzzMock':
  - 25
  '...fuzz_http.FuzzMock.recv':
  - 34
  - 35
  - 36
  - 38
  - 39
  '...fuzz_http.FuzzMock.send':
  - 43
  - 44
  '...fuzz_http.TestOneInput':
  - 49
  - 51
  - 52
  - 54
  - 55
  - 57
  - 58
  '...fuzz_http.main':
  - 68
  - 69
  - 70
  websocket:
  - 1
  websocket._abnf:
  - 10
  websocket._abnf.ABNF:
  - 101
  websocket._abnf.ABNF.__init__:
  - 136
  - 145
  websocket._abnf.ABNF.__str__:
  - 185
  - 186
  - 187
  websocket._abnf.ABNF._get_masked:
  - 241
  - 243
  - 244
  websocket._abnf.ABNF.create_frame:
  - 208
  - 205
  - 206
  - 191
  websocket._abnf.ABNF.format:
  - 225
  - 226
  - 227
  - 228
  - 229
  - 231
  - 232
  - 234
  - 237
  - 238
  - 211
  - 214
  - 216
  - 218
  - 219
  - 222
  websocket._abnf.ABNF.mask:
  - 260
  - 263
  - 264
  - 266
  - 267
  - 269
  - 250
  websocket._abnf.ABNF.validate:
  - 161
  - 164
  - 167
  - 168
  - 169
  - 171
  - 173
  - 177
  - 151
  - 158
  websocket._abnf._mask:
  - 37
  - 44
  - 45
  - 46
  - 47
  websocket._abnf.continuous_frame.add:
  - 410
  - 403
  - 406
  websocket._abnf.continuous_frame.extract:
  - 420
  websocket._abnf.continuous_frame.validate:
  - 396
  - 398
  websocket._abnf.frame_buffer.__init__:
  - 282
  - 283
  websocket._abnf.frame_buffer.has_mask:
  - 308
  websocket._abnf.frame_buffer.recv_frame:
  - 352
  - 353
  - 354
  - 357
  - 359
  - 360
  - 337
  - 338
  - 342
  - 343
  - 347
  - 348
  websocket._abnf.frame_buffer.recv_header:
  - 294
  websocket._abnf.frame_buffer.recv_length:
  - 320
  - 321
  - 322
  - 323
  - 318
  - 319
  websocket._abnf.frame_buffer.recv_mask:
  - 331
  websocket._abnf.frame_buffer.recv_strict:
  - 365
  - 373
  - 374
  - 375
  - 377
  - 379
  websocket._app:
  - 17
  websocket._app.Dispatcher:
  - 69
  websocket._app.Dispatcher.read:
  - 74
  - 75
  - 77
  - 78
  - 79
  - 81
  - 82
  websocket._app.DispatcherBase:
  - 47
  websocket._app.DispatcherBase.reconnect:
  - 65
  - 60
  - 61
  - 62
  - 63
  websocket._app.DispatcherBase.timeout:
  - 56
  - 55
  websocket._app.SSLDispatcher:
  - 86
  websocket._app.SSLDispatcher.read:
  - 91
  - 92
  - 93
  - 95
  websocket._app.SSLDispatcher.select:
  - 99
  - 102
  - 103
  - 105
  - 106
  - 108
  websocket._app.WebSocketApp:
  - 134
  websocket._app.WebSocketApp.__init__:
  - 146
  websocket._app.WebSocketApp._callback:
  - 524
  - 526
  - 529
  - 530
  - 531
  websocket._app.WebSocketApp._get_close_args:
  - 505
  - 515
  - 517
  - 511
  websocket._app.WebSocketApp._send_ping:
  - 271
  - 273
  - 274
  - 275
  - 277
  - 278
  - 280
  websocket._app.WebSocketApp._start_ping_thread:
  - 258
  - 259
  - 261
  websocket._app.WebSocketApp._stop_ping_thread:
  - 264
  - 265
  - 266
  - 267
  websocket._app.WebSocketApp.close:
  - 248
  - 252
  - 253
  websocket._app.WebSocketApp.create_dispatcher:
  - 496
  - 497
  - 499
  - 500
  - 502
  websocket._app.WebSocketApp.run_forever:
  - 353
  - 291
  - 355
  - 357
  - 484
  - 485
  - 487
  - 488
  - 490
  - 491
  - 344
  - 347
  - 349
  - 351
  websocket._app.WebSocketApp.run_forever.check:
  - 458
  - 453
  - 454
  websocket._app.WebSocketApp.run_forever.handleDisconnect:
  - 481
  - 482
  - 466
  - 467
  - 468
  - 470
  - 471
  - 475
  - 476
  - 477
  - 478
  - 479
  websocket._app.WebSocketApp.run_forever.read:
  - 420
  - 421
  - 424
  - 426
  - 427
  - 431
  - 432
  - 433
  - 434
  - 435
  - 436
  - 437
  - 438
  - 439
  - 441
  - 445
  - 446
  - 447
  - 448
  websocket._app.WebSocketApp.run_forever.setSock:
  - 417
  - 388
  - 389
  - 391
  - 397
  - 399
  - 408
  - 410
  - 411
  - 413
  - 415
  websocket._app.WebSocketApp.run_forever.teardown:
  - 385
  - 366
  - 376
  - 378
  - 379
  - 380
  websocket._app.WebSocketApp.send:
  - 243
  - 231
  websocket._app.WrappedDispatcher:
  - 113
  websocket._app.WrappedDispatcher.__init__:
  - 120
  websocket._app.WrappedDispatcher.read:
  - 123
  - 124
  websocket._app.WrappedDispatcher.reconnect:
  - 130
  websocket._app.WrappedDispatcher.timeout:
  - 127
  websocket._cookiejar:
  - 3
  websocket._cookiejar.SimpleCookieJar.__init__:
  - 25
  websocket._cookiejar.SimpleCookieJar.add:
  - 32
  - 33
  - 34
  - 36
  - 37
  - 38
  - 28
  - 29
  - 31
  websocket._cookiejar.SimpleCookieJar.get:
  - 52
  - 56
  - 57
  - 58
  - 59
  - 61
  - 62
  - 63
  websocket._cookiejar.SimpleCookieJar.set:
  - 41
  - 42
  - 44
  - 45
  - 46
  - 47
  - 49
  websocket._core:
  - 16
  websocket._core.WebSocket:
  - 160
  - 199
  - 39
  - 171
  - 182
  websocket._core.WebSocket.__init__:
  - 98
  - 99
  - 100
  - 102
  - 103
  - 79
  - 87
  - 94
  - 95
  websocket._core.WebSocket.__iter__:
  - 106
  - 110
  websocket._core.WebSocket.__next__:
  - 113
  websocket._core.WebSocket._recv:
  - 529
  - 531
  - 532
  websocket._core.WebSocket._send:
  - 525
  websocket._core.WebSocket.abort:
  - 512
  - 513
  - 509
  websocket._core.WebSocket.close:
  - 464
  - 477
  - 478
  - 483
  - 484
  - 485
  - 486
  - 487
  - 489
  - 490
  - 492
  - 493
  - 494
  - 495
  - 496
  - 497
  - 501
  - 502
  - 506
  websocket._core.WebSocket.connect:
  - 257
  - 258
  - 259
  - 260
  - 263
  - 264
  - 202
  - 248
  - 249
  - 250
  - 253
  - 254
  - 255
  websocket._core.WebSocket.fileno:
  - 119
  websocket._core.WebSocket.getheaders:
  - 185
  - 188
  websocket._core.WebSocket.getstatus:
  - 177
  - 174
  websocket._core.WebSocket.getsubprotocol:
  - 163
  - 166
  websocket._core.WebSocket.gettimeout:
  - 137
  websocket._core.WebSocket.is_ssl:
  - 195
  websocket._core.WebSocket.next:
  - 116
  websocket._core.WebSocket.ping:
  - 328
  - 337
  - 338
  - 336
  websocket._core.WebSocket.pong:
  - 349
  - 341
  - 350
  - 351
  websocket._core.WebSocket.recv:
  - 354
  - 362
  - 363
  - 364
  - 365
  websocket._core.WebSocket.recv_data:
  - 385
  - 371
  websocket._core.WebSocket.recv_data_frame:
  - 389
  - 406
  - 407
  - 408
  - 409
  - 410
  - 415
  - 416
  - 417
  - 419
  - 420
  - 422
  - 423
  - 425
  - 426
  - 427
  - 431
  - 433
  - 434
  websocket._core.WebSocket.recv_frame:
  - 445
  - 438
  websocket._core.WebSocket.send:
  - 282
  - 283
  - 269
  websocket._core.WebSocket.send_binary:
  - 325
  - 317
  websocket._core.WebSocket.send_close:
  - 448
  - 458
  - 461
  websocket._core.WebSocket.send_frame:
  - 302
  - 304
  - 305
  - 306
  - 307
  - 308
  - 311
  - 286
  websocket._core.WebSocket.set_mask_key:
  - 122
  websocket._core.WebSocket.settimeout:
  - 148
  - 157
  - 158
  websocket._core.WebSocket.shutdown:
  - 520
  - 516
  - 519
  websocket._core.create_connection:
  - 608
  - 603
  - 598
  - 599
  - 600
  - 601
  - 602
  - 539
  - 607
  websocket._exceptions:
  - 1
  websocket._exceptions.WebSocketAddressException:
  - 77
  websocket._exceptions.WebSocketBadStatusException:
  - 65
  websocket._exceptions.WebSocketBadStatusException.__init__:
  - 70
  websocket._exceptions.WebSocketConnectionClosedException:
  - 43
  websocket._exceptions.WebSocketException:
  - 22
  websocket._exceptions.WebSocketPayloadException:
  - 36
  websocket._exceptions.WebSocketProtocolException:
  - 29
  websocket._exceptions.WebSocketProxyException:
  - 58
  websocket._exceptions.WebSocketTimeoutException:
  - 51
  websocket._handshake:
  - 1
  - 38
  websocket._handshake._create_sec_websocket_key:
  - 194
  - 195
  websocket._handshake._get_handshake_headers:
  - 128
  - 130
  - 131
  - 133
  - 135
  - 136
  - 138
  - 139
  - 77
  - 80
  - 81
  - 83
  - 84
  - 85
  - 87
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 98
  - 100
  - 103
  - 104
  - 108
  - 109
  - 111
  - 112
  - 114
  - 116
  - 117
  - 118
  - 120
  - 121
  - 122
  - 124
  - 125
  websocket._handshake._get_resp_headers:
  - 145
  - 146
  - 147
  websocket._handshake._pack_hostname:
  - 69
  websocket._handshake._validate:
  - 160
  - 161
  - 162
  - 164
  - 165
  - 168
  - 169
  - 170
  - 171
  - 173
  - 175
  - 176
  - 178
  - 180
  - 181
  - 183
  - 184
  - 185
  - 187
  websocket._handshake.handshake:
  - 64
  - 51
  - 53
  - 54
  - 55
  - 57
  - 58
  - 59
  - 60
  - 61
  websocket._handshake.handshake_response.__init__:
  - 47
  websocket._http:
  - 1
  websocket._http._get_addrinfo_list:
  - 164
  - 154
  - 155
  - 148
  websocket._http._open_socket:
  - 193
  - 172
  - 174
  - 175
  - 176
  - 177
  - 178
  - 179
  - 185
  - 187
  - 188
  websocket._http._ssl_socket:
  - 256
  - 257
  - 259
  - 260
  - 261
  - 263
  - 264
  - 267
  - 270
  - 271
  websocket._http._start_proxied_socket:
  - 100
  - 102
  - 103
  - 104
  - 73
  - 76
  - 78
  - 81
  - 85
  - 88
  - 92
  - 95
  websocket._http._tunnel:
  - 289
  - 291
  - 294
  - 298
  - 277
  - 278
  - 279
  - 282
  - 284
  - 286
  - 287
  websocket._http._wrap_sni_socket:
  - 211
  - 212
  - 213
  - 215
  - 216
  - 217
  - 218
  - 219
  - 220
  - 221
  - 222
  - 223
  - 225
  - 226
  - 232
  - 236
  - 237
  - 239
  - 240
  - 241
  - 243
  - 244
  - 245
  - 247
  - 249
  - 250
  websocket._http.connect:
  - 130
  - 131
  - 132
  - 134
  - 135
  - 136
  - 142
  - 143
  - 114
  - 115
  - 117
  - 119
  - 122
  - 124
  websocket._http.proxy_info.__init__:
  - 55
  - 56
  - 57
  - 58
  - 59
  - 60
  - 62
  - 63
  websocket._http.read_headers:
  - 320
  - 321
  - 324
  - 325
  - 327
  - 328
  - 330
  - 334
  - 309
  - 312
  - 313
  - 314
  - 316
  - 317
  - 319
  websocket._logging:
  - 3
  - 22
  - 30
  websocket._logging.debug:
  - 72
  websocket._logging.dump:
  - 57
  - 58
  - 59
  - 60
  websocket._logging.enableTrace:
  - 41
  - 51
  - 52
  - 53
  websocket._logging.error:
  - 64
  websocket._logging.info:
  - 76
  websocket._logging.isEnabledForDebug:
  - 89
  websocket._logging.isEnabledForError:
  - 85
  websocket._logging.trace:
  - 80
  - 81
  websocket._logging.warning:
  - 68
  websocket._socket:
  - 32
  - 33
  - 34
  - 35
  - 36
  - 9
  - 29
  - 30
  - 31
  websocket._socket.getdefaulttimeout:
  - 70
  websocket._socket.recv:
  - 105
  - 106
  - 108
  - 112
  - 82
  - 115
  - 116
  - 121
  websocket._socket.recv._recv:
  - 96
  - 98
  - 99
  - 101
  - 102
  - 87
  - 91
  - 92
  - 95
  websocket._socket.recv_line:
  - 131
  - 132
  - 133
  - 135
  websocket._socket.send:
  - 167
  - 168
  - 170
  - 139
  - 140
  - 172
  - 142
  - 175
  - 176
  websocket._socket.send._send:
  - 160
  - 161
  - 163
  - 164
  - 147
  - 151
  - 152
  - 154
  - 157
  - 158
  websocket._socket.setdefaulttimeout:
  - 57
  websocket._socket.sock_opt.__init__:
  - 49
  - 47
  websocket._ssl_compat:
  - 1
  websocket._url:
  - 7
  websocket._url._is_address_in_network:
  - 96
  - 97
  - 98
  - 100
  websocket._url._is_ip_address:
  - 80
  websocket._url._is_no_proxy_host:
  - 105
  - 106
  - 107
  - 108
  - 109
  - 112
  - 114
  - 116
  - 117
  - 118
  - 119
  websocket._url._is_subnet_address:
  - 89
  - 90
  websocket._url.get_proxy_info:
  - 162
  - 163
  - 165
  - 166
  - 167
  - 168
  - 169
  - 153
  - 156
  - 127
  websocket._url.parse_url:
  - 64
  - 69
  - 39
  - 42
  - 44
  - 45
  - 50
  - 54
  - 55
  - 57
  - 59
  - 30
  websocket._utils:
  - 1
  websocket._utils._validate_utf8:
  - 80
  - 37
  - 78
  - 79
  websocket._utils.extract_err_message:
  - 96
  websocket._utils.extract_error_code:
  - 104
  - 103
  websocket._utils.validate_utf8:
  - 92
  - 87
  websocket._wsdump:
  - 3
  - 227
  - 229
  - 231
  - 49
  websocket._wsdump.InteractiveConsole.read:
  - 117
  websocket._wsdump.InteractiveConsole.write:
  - 112
  - 113
  - 114
  - 110
  websocket._wsdump.NonInteractive.read:
  - 128
  websocket._wsdump.NonInteractive.write:
  - 123
  - 124
  - 125
  websocket._wsdump.RawInput.raw_input:
  - 97
  - 99
  - 100
  - 101
  - 102
  websocket._wsdump.VAction.__call__:
  - 58
  - 60
  - 61
  - 55
  websocket._wsdump.get_encoding:
  - 41
  - 42
  - 45
  websocket._wsdump.main:
  - 132
  - 133
  - 134
  - 135
  - 137
  - 138
  - 141
  - 143
  - 146
  - 148
  - 149
  - 150
  - 151
  - 152
  - 154
  - 155
  - 209
  - 211
  - 213
  - 214
  - 218
  - 219
  - 223
  websocket._wsdump.main.recv:
  - 162
  - 164
  - 166
  - 167
  - 169
  - 170
  - 159
  websocket._wsdump.main.recv_ws:
  - 192
  - 193
  - 195
  - 196
  - 200
  - 201
  - 202
  - 204
  - 206
  - 177
  - 179
  - 180
  - 181
  - 183
  - 186
  - 188
  websocket._wsdump.parse_args:
  - 65
  - 66
  - 68
  - 70
  - 74
  - 76
  - 78
  - 80
  - 82
  - 84
  - 86
  - 88
  - 91
Fuzzer filename: /src/fuzz_http.py
Inheritance:
  '...fuzz_http.FuzzMock': []
  websocket._abnf.ABNF: []
  websocket._abnf.continuous_frame: []
  websocket._abnf.frame_buffer: []
  websocket._app.Dispatcher:
  - DispatcherBase
  websocket._app.DispatcherBase: []
  websocket._app.SSLDispatcher:
  - DispatcherBase
  websocket._app.WebSocketApp: []
  websocket._app.WrappedDispatcher: []
  websocket._cookiejar.SimpleCookieJar: []
  websocket._core.WebSocket: []
  websocket._exceptions.WebSocketAddressException:
  - WebSocketException
  websocket._exceptions.WebSocketBadStatusException:
  - WebSocketException
  websocket._exceptions.WebSocketConnectionClosedException:
  - WebSocketException
  websocket._exceptions.WebSocketException:
  - Exception
  websocket._exceptions.WebSocketPayloadException:
  - WebSocketException
  websocket._exceptions.WebSocketProtocolException:
  - WebSocketException
  websocket._exceptions.WebSocketProxyException:
  - WebSocketException
  websocket._exceptions.WebSocketTimeoutException:
  - WebSocketException
  websocket._handshake.handshake_response: []
  websocket._http.ProxyConnectionError:
  - Exception
  websocket._http.ProxyError:
  - Exception
  websocket._http.ProxyTimeoutError:
  - Exception
  websocket._http.proxy_info: []
  websocket._logging.NullHandler: []
  websocket._socket.sock_opt: []
  websocket._ssl_compat.SSLError:
  - Exception
  websocket._ssl_compat.SSLWantReadError:
  - Exception
  websocket._ssl_compat.SSLWantWriteError:
  - Exception
  websocket._utils.NoLock: []
  websocket._wsdump.InteractiveConsole:
  - RawInput
  websocket._wsdump.NonInteractive:
  - RawInput
  websocket._wsdump.RawInput: []
  websocket._wsdump.VAction: []
ep:
  func_name: TestOneInput
  module: '...fuzz_http'
