Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK!o __init__.pynu[from tuned.profiles.locator import * from tuned.profiles.loader import * from tuned.profiles.profile import * from tuned.profiles.unit import * from tuned.profiles.exceptions import * from tuned.profiles.factory import * from tuned.profiles.merger import * from . import functions PK!__ exceptions.pynu[import tuned.exceptions class InvalidProfileException(tuned.exceptions.TunedException): pass PK!R5> merger.pynu[import collections from functools import reduce class Merger(object): """ Tool for merging multiple profiles into one. """ def __init__(self): pass def merge(self, configs): """ Merge multiple configurations into one. If there are multiple units of the same type, option 'devices' is set for each unit with respect to eliminating any duplicate devices. """ merged_config = reduce(self._merge_two, configs) return merged_config def _merge_two(self, profile_a, profile_b): """ Merge two profiles. The configuration of units with matching names are updated with options from the newer profile. If the 'replace' options of the newer unit is 'True', all options from the older unit are dropped. """ profile_a.options.update(profile_b.options) for unit_name, unit in list(profile_b.units.items()): if unit.replace or unit_name not in profile_a.units: profile_a.units[unit_name] = unit else: profile_a.units[unit_name].type = unit.type profile_a.units[unit_name].enabled = unit.enabled profile_a.units[unit_name].devices = unit.devices if unit.devices_udev_regex is not None: profile_a.units[unit_name].devices_udev_regex = unit.devices_udev_regex if unit.cpuinfo_regex is not None: profile_a.units[unit_name].cpuinfo_regex = unit.cpuinfo_regex if unit.uname_regex is not None: profile_a.units[unit_name].uname_regex = unit.uname_regex if unit.script_pre is not None: profile_a.units[unit_name].script_pre = unit.script_pre if unit.script_post is not None: profile_a.units[unit_name].script_post = unit.script_post if unit.drop is not None: for option in unit.drop: profile_a.units[unit_name].options.pop(option, None) unit.drop = None if unit_name == "script" and profile_a.units[unit_name].options.get("script", None) is not None: script = profile_a.units[unit_name].options.get("script", None) profile_a.units[unit_name].options.update(unit.options) profile_a.units[unit_name].options["script"] = script + profile_a.units[unit_name].options["script"] else: profile_a.units[unit_name].options.update(unit.options) return profile_a PK!] unit.pynu[import collections import re class Unit(object): """ Unit description. """ __slots__ = [ "_name", "_type", "_enabled", "_replace", "_drop", "_devices", "_devices_udev_regex", \ "_cpuinfo_regex", "_uname_regex", "_script_pre", "_script_post", "_options" ] def __init__(self, name, config): self._name = name self._type = config.pop("type", self._name) self._enabled = config.pop("enabled", True) in [True, "True", "true", 1, "1"] self._replace = config.pop("replace", False) in [True, "True", "true", 1, "1"] self._drop = config.pop("drop", None) if self._drop is not None: self._drop = re.split(r"\b\s*[,;]\s*", str(self._drop)) self._devices = config.pop("devices", "*") self._devices_udev_regex = config.pop("devices_udev_regex", None) self._cpuinfo_regex = config.pop("cpuinfo_regex", None) self._uname_regex = config.pop("uname_regex", None) self._script_pre = config.pop("script_pre", None) self._script_post = config.pop("script_post", None) self._options = collections.OrderedDict(config) @property def name(self): return self._name @property def type(self): return self._type @type.setter def type(self, value): self._type = value @property def enabled(self): return self._enabled @enabled.setter def enabled(self, value): self._enabled = value @property def replace(self): return self._replace @property def drop(self): return self._drop @drop.setter def drop(self, value): self._drop = value @property def devices(self): return self._devices @devices.setter def devices(self, value): self._devices = value @property def devices_udev_regex(self): return self._devices_udev_regex @devices_udev_regex.setter def devices_udev_regex(self, value): self._devices_udev_regex = value @property def cpuinfo_regex(self): return self._cpuinfo_regex @cpuinfo_regex.setter def cpuinfo_regex(self, value): self._cpuinfo_regex = value @property def uname_regex(self): return self._uname_regex @uname_regex.setter def uname_regex(self, value): self._uname_regex = value @property def script_pre(self): return self._script_pre @script_pre.setter def script_pre(self, value): self._script_pre = value @property def script_post(self): return self._script_post @script_post.setter def script_post(self, value): self._script_post = value @property def options(self): return self._options @options.setter def options(self, value): self._options = value PK!F locator.pynu[import os import tuned.consts as consts from tuned.utils.config_parser import ConfigParser, Error class Locator(object): """ Profiles locator and enumerator. """ __slots__ = ["_load_directories"] def __init__(self, load_directories): if type(load_directories) is not list: raise TypeError("load_directories parameter is not a list") self._load_directories = load_directories @property def load_directories(self): return self._load_directories def _get_config_filename(self, *path_parts): path_parts = list(path_parts) + ["tuned.conf"] config_name = os.path.join(*path_parts) return os.path.normpath(config_name) def get_config(self, profile_name, skip_files=None): ret = None conditional_load = profile_name[0:1] == "-" if conditional_load: profile_name = profile_name[1:] for dir_name in reversed(self._load_directories): # basename is protection not to get out of the path config_file = self._get_config_filename(dir_name, os.path.basename(profile_name)) if skip_files is not None and config_file in skip_files: ret = "" continue if os.path.isfile(config_file): return config_file if conditional_load and ret is None: ret = "" return ret def check_profile_name_format(self, profile_name): return profile_name is not None and profile_name != "" and "/" not in profile_name def parse_config(self, profile_name): if not self.check_profile_name_format(profile_name): return None config_file = self.get_config(profile_name) if config_file is None: return None try: config = ConfigParser(delimiters=('='), inline_comment_prefixes=('#'), allow_no_value=True, strict=False) config.optionxform = str with open(config_file) as f: config.read_string("[" + consts.MAGIC_HEADER_NAME + "]\n" + f.read()) return config except (IOError, OSError, Error) as e: return None # Get profile attributes (e.g. summary, description), attrs is list of requested attributes, # if it is not list it is converted to list, defvals is list of default values to return if # attribute is not found, it is also converted to list if it is not list. # Returns list of the following format [status, profile_name, attr1_val, attr2_val, ...], # status is boolean. def get_profile_attrs(self, profile_name, attrs, defvals = None): # check types try: attrs_len = len(attrs) except TypeError: attrs = [attrs] attrs_len = 1 try: defvals_len = len(defvals) except TypeError: defvals = [defvals] defvals_len = 1 # Extend defvals if needed, last value is used for extension if defvals_len < attrs_len: defvals = defvals + ([defvals[-1]] * (attrs_len - defvals_len)) config = self.parse_config(profile_name) if config is None: return [False, "", "", ""] main_unit_in_config = consts.PLUGIN_MAIN_UNIT_NAME in config.sections() vals = [True, profile_name] for (attr, defval) in zip(attrs, defvals): if attr == "" or attr is None: vals[0] = False vals = vals + [""] elif main_unit_in_config and attr in config.options(consts.PLUGIN_MAIN_UNIT_NAME): vals = vals + [config.get(consts.PLUGIN_MAIN_UNIT_NAME, attr, raw=True)] else: vals = vals + [defval] return vals def list_profiles(self): profiles = set() for dir_name in self._load_directories: try: for profile_name in os.listdir(dir_name): config_file = self._get_config_filename(dir_name, profile_name) if os.path.isfile(config_file): profiles.add(profile_name) except OSError: pass return profiles def get_known_names(self): return sorted(self.list_profiles()) def get_known_names_summary(self): return [(profile, self.get_profile_attrs(profile, [consts.PROFILE_ATTR_SUMMARY], [""])[2]) for profile in sorted(self.list_profiles())] PK!?4^^%__pycache__/exceptions.cpython-36.pycnu[3 sPK!$0%__pycache__/unit.cpython-36.opt-1.pycnu[3 sPK!pm5TT!__pycache__/merger.cpython-36.pycnu[3 s PK!@ (__pycache__/factory.cpython-36.opt-1.pycnu[3 sPK! _(__pycache__/profile.cpython-36.opt-1.pycnu[3 s PK!Yll'__pycache__/loader.cpython-36.opt-1.pycnu[3 s   PK!?4^^+__pycache__/exceptions.cpython-36.opt-1.pycnu[3 sPK!Wqxx(__pycache__/locator.cpython-36.opt-1.pycnu[3 }|j|tjj|}|dk r^||kr^d}q0tjj|r0|Sq0W|r|dkrd}|S)Nr-)reversedrrrrbasenameisfile)r profile_nameZ skip_filesretZconditional_loaddir_name config_filer r r get_configs   zLocator.get_configcCs|dk o|dkod|kS)Nr/r )r rr r r check_profile_name_format0sz!Locator.check_profile_name_formatcCs|j|sdS|j|}|dkr$dSyJtddddd}t|_t|"}|jdtjd|j WdQRX|St t t fk r}zdSd}~XnXdS)N=#TF)Z delimitersZinline_comment_prefixesZallow_no_valuestrict[z] ) r rrstrZ optionxformopenZ read_stringconstsZMAGIC_HEADER_NAMEreadIOErrorOSErrorr)r rrconfigfer r r parse_config3s   &zLocator.parse_configc Cs$y t|}Wntk r*|g}d}YnXy t|}Wntk rV|g}d}YnX||krv||dg||}|j|}|dkrddddgStj|jk}d|g}xtt||D]f\} } | dks| dkrd|d<|dg}q|o| |jtjkr||jtj| ddg}q|| g}qW|S)NrFrTr)raw) lenrr.r'ZPLUGIN_MAIN_UNIT_NAMEZsectionszipZoptionsget) r rZattrsZdefvalsZ attrs_lenZ defvals_lenr+Zmain_unit_in_configvalsattrZdefvalr r r get_profile_attrsGs2       zLocator.get_profile_attrsc Csjt}x^|jD]T}y:x4tj|D]&}|j||}tjj|r |j|q WWqtk r`YqXqW|S)N) setrrlistdirrrraddr*)r Zprofilesrrrr r r list_profileses    zLocator.list_profilescCs t|jS)N)sortedr:)r r r r get_known_namesqszLocator.get_known_namescsfddtjDS)Ncs(g|] }|j|tjgdgdfqS)r)r6r'ZPROFILE_ATTR_SUMMARY).0Zprofile)r r r usz3Locator.get_known_names_summary..)r;r:)r r )r r get_known_names_summarytszLocator.get_known_names_summary)N)N)__name__ __module__ __qualname____doc__ __slots__r propertyr rrr r.r6r:r<r@r r r r rs    r)rZ tuned.constsr'Ztuned.utils.config_parserrrobjectrr r r r s PK!Yll!__pycache__/loader.cpython-36.pycnu[3 s   PK!$0__pycache__/unit.cpython-36.pycnu[3 sPK!qZ/ $__pycache__/variables.cpython-36.pycnu[3 s    PK!Wqxx"__pycache__/locator.cpython-36.pycnu[3 }|j|tjj|}|dk r^||kr^d}q0tjj|r0|Sq0W|r|dkrd}|S)Nr-)reversedrrrrbasenameisfile)r profile_nameZ skip_filesretZconditional_loaddir_name config_filer r r get_configs   zLocator.get_configcCs|dk o|dkod|kS)Nr/r )r rr r r check_profile_name_format0sz!Locator.check_profile_name_formatcCs|j|sdS|j|}|dkr$dSyJtddddd}t|_t|"}|jdtjd|j WdQRX|St t t fk r}zdSd}~XnXdS)N=#TF)Z delimitersZinline_comment_prefixesZallow_no_valuestrict[z] ) r rrstrZ optionxformopenZ read_stringconstsZMAGIC_HEADER_NAMEreadIOErrorOSErrorr)r rrconfigfer r r parse_config3s   &zLocator.parse_configc Cs$y t|}Wntk r*|g}d}YnXy t|}Wntk rV|g}d}YnX||krv||dg||}|j|}|dkrddddgStj|jk}d|g}xtt||D]f\} } | dks| dkrd|d<|dg}q|o| |jtjkr||jtj| ddg}q|| g}qW|S)NrFrTr)raw) lenrr.r'ZPLUGIN_MAIN_UNIT_NAMEZsectionszipZoptionsget) r rZattrsZdefvalsZ attrs_lenZ defvals_lenr+Zmain_unit_in_configvalsattrZdefvalr r r get_profile_attrsGs2       zLocator.get_profile_attrsc Csjt}x^|jD]T}y:x4tj|D]&}|j||}tjj|r |j|q WWqtk r`YqXqW|S)N) setrrlistdirrrraddr*)r Zprofilesrrrr r r list_profileses    zLocator.list_profilescCs t|jS)N)sortedr:)r r r r get_known_namesqszLocator.get_known_namescsfddtjDS)Ncs(g|] }|j|tjgdgdfqS)r)r6r'ZPROFILE_ATTR_SUMMARY).0Zprofile)r r r usz3Locator.get_known_names_summary..)r;r:)r r )r r get_known_names_summarytszLocator.get_known_names_summary)N)N)__name__ __module__ __qualname____doc__ __slots__r propertyr rrr r.r6r:r<r@r r r r rs    r)rZ tuned.constsr'Ztuned.utils.config_parserrrobjectrr r r r s PK!\#__pycache__/__init__.cpython-36.pycnu[3 sPK!@ "__pycache__/factory.cpython-36.pycnu[3 sPK!pm5TT'__pycache__/merger.cpython-36.opt-1.pycnu[3 s PK!\)__pycache__/__init__.cpython-36.opt-1.pycnu[3 sPK!qZ/ *__pycache__/variables.cpython-36.opt-1.pycnu[3 s    PK! _"__pycache__/profile.cpython-36.pycnu[3 s PK!Ao$ $ variables.pynu[import os import re import tuned.logs from .functions import functions as functions import tuned.consts as consts from tuned.utils.commands import commands from tuned.utils.config_parser import ConfigParser, Error log = tuned.logs.get() class Variables(): """ Storage and processing of variables used in profiles """ def __init__(self): self._cmd = commands() self._lookup_re = {} self._lookup_env = {} self._functions = functions.Functions() def _add_env_prefix(self, s, prefix): if s.find(prefix) == 0: return s return prefix + s def _check_var(self, variable): return re.match(r'\w+$',variable) def add_variable(self, variable, value): if value is None: return s = str(variable) if not self._check_var(variable): log.error("variable definition '%s' contains unallowed characters" % variable) return v = self.expand(value) # variables referenced by ${VAR}, $ can be escaped by two $, # i.e. the following will not expand: $${VAR} self._lookup_re[r'(? 0: if not args[0].isdecimal() or int(args[0]) < 0: log.error("invalid argument '%s' for builtin function '%s', it must be non-negative integer" % (args[0], self._name)) return None else: cpus_reserve = int(args[0]) topo = {} for cpu in glob.iglob(os.path.join(consts.SYSFS_CPUS_PATH, "cpu*")): cpuid = os.path.basename(cpu)[3:] if cpuid.isdecimal(): physical_package_id = os.path.join(cpu, "topology/physical_package_id") # Show no errors when the physical_package_id file does not exist -- the CPU may be offline. if not os.path.exists(physical_package_id): log.debug("file '%s' does not exist, cpu%s offline?" % (physical_package_id, cpuid)) continue socket = self._cmd.read_file(physical_package_id).strip() if socket.isdecimal(): topo[socket] = topo.get(socket, []) + [cpuid] isol_cpus = [] for cpus in topo.values(): cpus.sort(key = int) isol_cpus = isol_cpus + cpus[cpus_reserve:] isol_cpus.sort(key = int) return ",".join(isol_cpus) PK!G5"functions/function_cpulist2devs.pynu[import tuned.logs from . import base log = tuned.logs.get() class cpulist2devs(base.Function): """ Conversion function: converts CPU list to device strings """ def __init__(self): # arbitrary number of arguments super(cpulist2devs, self).__init__("cpulist2devs", 0) def execute(self, args): if not super(cpulist2devs, self).execute(args): return None return self._cmd.cpulist2string(self._cmd.cpulist_unpack(",".join(args)), prefix = "cpu") PK!functions/function_exec.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands class execute(base.Function): """ Executes process and substitutes its output. """ def __init__(self): # unlimited number of arguments, min 1 argument (the name of executable) super(execute, self).__init__("exec", 0, 1) def execute(self, args): if not super(execute, self).execute(args): return None (ret, out) = self._cmd.execute(args) if ret == 0: return out return None PK!{k***functions/function_regex_search_ternary.pynu[import re from . import base class regex_search_ternary(base.Function): """ Ternary regex operator, it takes arguments in the following form STR1, REGEX, STR2, STR3 If REGEX matches STR1 (re.search is used), STR2 is returned, otherwise STR3 is returned """ def __init__(self): # 4 arguments super(regex_search_ternary, self).__init__("regex_search_ternary", 4, 4) def execute(self, args): if not super(regex_search_ternary, self).execute(args): return None if re.search(args[1], args[0]): return args[2] else: return args[3] PK!,!functions/function_hex2cpulist.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands log = tuned.logs.get() class hex2cpulist(base.Function): """ Conversion function: converts hexadecimal CPU mask to CPU list """ def __init__(self): # 1 argument super(hex2cpulist, self).__init__("hex2cpulist", 1, 1) def execute(self, args): if not super(hex2cpulist, self).execute(args): return None return ",".join(str(v) for v in self._cmd.hex2cpulist(args[0])) PK!E"SS functions/function_virt_check.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands class virt_check(base.Function): """ Checks whether running inside virtual machine (VM) or on bare metal. If running inside VM expands to argument 1, otherwise expands to argument 2 (even on error). """ def __init__(self): # 2 arguments super(virt_check, self).__init__("virt_check", 2, 2) def execute(self, args): if not super(virt_check, self).execute(args): return None (ret, out) = self._cmd.execute(["virt-what"]) if ret == 0 and len(out) > 0: return args[0] return args[1] PK!$Xfunctions/repository.pynu[from tuned.utils.plugin_loader import PluginLoader from . import base import tuned.logs import tuned.consts as consts from tuned.utils.commands import commands log = tuned.logs.get() class Repository(PluginLoader): def __init__(self): super(Repository, self).__init__() self._functions = {} @property def functions(self): return self._functions def _set_loader_parameters(self): self._namespace = "tuned.profiles.functions" self._prefix = consts.FUNCTION_PREFIX self._interface = tuned.profiles.functions.base.Function def create(self, function_name): log.debug("creating function %s" % function_name) function_cls = self.load_plugin(function_name) function_instance = function_cls() self._functions[function_name] = function_instance return function_instance # loads function from plugin file and return it # if it is already loaded, just return it, it is not loaded again def load_func(self, function_name): if not function_name in self._functions: return self.create(function_name) return self._functions[function_name] def delete(self, function): assert isinstance(function, self._interface) log.debug("removing function %s" % function) for k, v in list(self._functions.items()): if v == function: del self._functions[k] PK!RU%functions/function_cpulist_present.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands log = tuned.logs.get() class cpulist_present(base.Function): """ Checks whether CPUs from list are present, returns list containing only present CPUs """ def __init__(self): # arbitrary number of arguments super(cpulist_present, self).__init__("cpulist_present", 0) def execute(self, args): if not super(cpulist_present, self).execute(args): return None cpus = self._cmd.cpulist_unpack(",,".join(args)) present = self._cmd.cpulist_unpack(self._cmd.read_file("/sys/devices/system/cpu/present")) return ",".join(str(v) for v in sorted(list(set(cpus).intersection(set(present))))) PK!mgfunctions/function_strip.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands class strip(base.Function): """ Makes string from all arguments and strip it """ def __init__(self): # unlimited number of arguments, min 1 argument super(strip, self).__init__("strip", 0, 1) def execute(self, args): if not super(strip, self).execute(args): return None return "".join(args).strip() PK!3wB B 4functions/__pycache__/functions.cpython-36.opt-1.pycnu[3 1sz+Functions._process_func..z\w+$rzinvalid function name '%s'zfunction '%s' not implemented) resplitrr matchlogerrorrZ load_func ImportErrorZexecuter)rZ_fromZslfrr r r _process_func-s  zFunctions._process_funcc Cs|j|x|j|jkr|jdkrpy|jj}Wn$tk rVtjd||j SX|ds|j |dn|j ddkr|j |j |jdkrd|_ nd |_ |jd7_q Wt|jrtjd ||j S) N}z.invalid variable syntax, non pair '}' in: '%s'rrr"z${\TFz.invalid variable syntax, non pair '{' in: '%s')rr rrrpop IndexErrorr&r'rr*rrrr)rrZsir r r _process?s&     zFunctions._processcCs(|dks|dkr|Stjdd|j|S)Nr z \\(\${f:.*})z\1)r#subr/)rrr r r expandVszFunctions.expandN)r ) __name__ __module__ __qualname____doc__r rrrrrr*r/r1r r r r r s r)osr#Zglobr rZ tuned.logsZtunedZ tuned.constsZconstsZtuned.utils.commandsrZlogsgetr&cmdrr r r r s    PK!nIIBfunctions/__pycache__/function_cpulist_unpack.cpython-36.opt-1.pycnu[3 sz)cpulist_unpack.execute..z,,)rrexecutejoinZ_cmd)rargs)r r r rszcpulist_unpack.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!}22Afunctions/__pycache__/function_calc_isolated_cores.cpython-36.pycnu[3 s    PK!{IGfunctions/__pycache__/function_assertion_non_equal.cpython-36.opt-1.pycnu[3 s     PK!k1@functions/__pycache__/function_cpulist_pack.cpython-36.opt-1.pycnu[3 sz'cpulist_pack.execute..z,,)rrexecutejoinZ_cmd)rargs)r r r rszcpulist_pack.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!A@functions/__pycache__/function_cpulist2devs.cpython-36.opt-1.pycnu[3 s  PK!33/functions/__pycache__/repository.cpython-36.pycnu[3 s     PK!ށ||Ffunctions/__pycache__/function_cpulist2hex_invert.cpython-36.opt-1.pycnu[3 tt|j|sdS|jjdjdd|jjdj|DS)N,css|]}t|VqdS)N)str).0vr r r sz-cpulist2hex_invert.execute..z,,)rrexecuteZ_cmdZ cpulist2hexjoinZcpulist_invert)rargs)r r r rszcpulist2hex_invert.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!k1:functions/__pycache__/function_cpulist_pack.cpython-36.pycnu[3 sz'cpulist_pack.execute..z,,)rrexecutejoinZ_cmd)rargs)r r r rszcpulist_pack.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!D=functions/__pycache__/function_assertion.cpython-36.opt-1.pycnu[3 s     PK![5Afunctions/__pycache__/function_cpuinfo_check.cpython-36.opt-1.pycnu[3 s  PK!q{nn2functions/__pycache__/function_exec.cpython-36.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)executez0 Executes process and substitutes its output. cstt|jddddS)Nexecrr)superr__init__)self) __class__#/usr/lib/python3.6/function_exec.pyr szexecute.__init__cs4tt|j|sdS|jj|\}}|dkr0|SdS)Nr)rrZ_cmd)r argsretout)r r r rs zexecute.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!q{nn8functions/__pycache__/function_exec.cpython-36.opt-1.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)executez0 Executes process and substitutes its output. cstt|jddddS)Nexecrr)superr__init__)self) __class__#/usr/lib/python3.6/function_exec.pyr szexecute.__init__cs4tt|j|sdS|jj|\}}|dkr0|SdS)Nr)rrZ_cmd)r argsretout)r r r rs zexecute.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!jTTCfunctions/__pycache__/function_check_net_queue_count.cpython-36.pycnu[3 s  PK!Jbo"">functions/__pycache__/function_virt_check.cpython-36.opt-1.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS) virt_checkz Checks whether running inside virtual machine (VM) or on bare metal. If running inside VM expands to argument 1, otherwise expands to argument 2 (even on error). cstt|jddddS)Nr)superr__init__)self) __class__)/usr/lib/python3.6/function_virt_check.pyr szvirt_check.__init__csJtt|j|sdS|jjdg\}}|dkrBt|dkrB|dS|dS)Nz virt-whatrr)rrexecuteZ_cmdlen)r argsretout)r r r r s zvirt_check.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!jTTIfunctions/__pycache__/function_check_net_queue_count.cpython-36.opt-1.pycnu[3 s  PK!Af;;?functions/__pycache__/function_hex2cpulist.cpython-36.opt-1.pycnu[3 sz&hex2cpulist.execute..r)rrexecutejoinZ_cmd)rargs)r r r rszhex2cpulist.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!_5functions/__pycache__/repository.cpython-36.opt-1.pycnu[3 tjd|x*t|jjD]\}}||kr|j|=qWdS)Nzremoving function %s)rrlistr items)r Zfunctionkvr r r delete&szRepository.delete) __name__ __module__ __qualname__rpropertyrrrrr __classcell__r r )r r r s    r)Ztuned.utils.plugin_loaderrrZ tuned.logsrZ tuned.constsrZtuned.utils.commandsrZlogsgetrrr r r r s     PK!{IAfunctions/__pycache__/function_assertion_non_equal.cpython-36.pycnu[3 s     PK!E.Cfunctions/__pycache__/function_cpulist_present.cpython-36.opt-1.pycnu[3 sz*cpulist_present.execute..) rrexecuteZ_cmdZcpulist_unpackjoinZ read_filesortedlistset intersection)rargsZcpusZpresent)r r r rs zcpulist_present.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!Jbo""8functions/__pycache__/function_virt_check.cpython-36.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS) virt_checkz Checks whether running inside virtual machine (VM) or on bare metal. If running inside VM expands to argument 1, otherwise expands to argument 2 (even on error). cstt|jddddS)Nr)superr__init__)self) __class__)/usr/lib/python3.6/function_virt_check.pyr szvirt_check.__init__csJtt|j|sdS|jjdg\}}|dkrBt|dkrB|dS|dS)Nz virt-whatrr)rrexecuteZ_cmdlen)r argsretout)r r r r s zvirt_check.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!z0OO3functions/__pycache__/function_strip.cpython-36.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)stripz0 Makes string from all arguments and strip it cstt|jddddS)Nrrr)superr__init__)self) __class__$/usr/lib/python3.6/function_strip.pyr szstrip.__init__cs"tt|j|sdSdj|jS)N)rrexecutejoin)rargs)r r r r sz strip.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedr rZtuned.utils.commandsrZFunctionrr r r r s  PK!5 ?functions/__pycache__/function_cpulist2hex.cpython-36.opt-1.pycnu[3 s    PK!Af;;9functions/__pycache__/function_hex2cpulist.cpython-36.pycnu[3 sz&hex2cpulist.execute..r)rrexecutejoinZ_cmd)rargs)r r r rszhex2cpulist.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!ALBfunctions/__pycache__/function_regex_search_ternary.cpython-36.pycnu[3 s PK!3wB B .functions/__pycache__/functions.cpython-36.pycnu[3 1sz+Functions._process_func..z\w+$rzinvalid function name '%s'zfunction '%s' not implemented) resplitrr matchlogerrorrZ load_func ImportErrorZexecuter)rZ_fromZslfrr r r _process_func-s  zFunctions._process_funcc Cs|j|x|j|jkr|jdkrpy|jj}Wn$tk rVtjd||j SX|ds|j |dn|j ddkr|j |j |jdkrd|_ nd |_ |jd7_q Wt|jrtjd ||j S) N}z.invalid variable syntax, non pair '}' in: '%s'rrr"z${\TFz.invalid variable syntax, non pair '{' in: '%s')rr rrrpop IndexErrorr&r'rr*rrrr)rrZsir r r _process?s&     zFunctions._processcCs(|dks|dkr|Stjdd|j|S)Nr z \\(\${f:.*})z\1)r#subr/)rrr r r expandVszFunctions.expandN)r ) __name__ __module__ __qualname____doc__r rrrrrr*r/r1r r r r r s r)osr#Zglobr rZ tuned.logsZtunedZ tuned.constsZconstsZtuned.utils.commandsrZlogsgetr&cmdrr r r r s    PK!5 9functions/__pycache__/function_cpulist2hex.cpython-36.pycnu[3 s    PK!!B8functions/__pycache__/function_s2kb.cpython-36.opt-1.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)s2kbz* Conversion function: sectors to kbytes cstt|jddddS)Nrr)superr__init__)self) __class__#/usr/lib/python3.6/function_s2kb.pyr sz s2kb.__init__c sJtt|j|sdSytttt|ddStk rDdSXdS)Nr)rrexecutestrintround ValueError)rargs)r r r r s z s2kb.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!nII<functions/__pycache__/function_cpulist_unpack.cpython-36.pycnu[3 sz)cpulist_unpack.execute..z,,)rrexecutejoinZ_cmd)rargs)r r r rszcpulist_unpack.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!!B2functions/__pycache__/function_s2kb.cpython-36.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)s2kbz* Conversion function: sectors to kbytes cstt|jddddS)Nrr)superr__init__)self) __class__#/usr/lib/python3.6/function_s2kb.pyr sz s2kb.__init__c sJtt|j|sdSytttt|ddStk rDdSXdS)Nr)rrexecutestrintround ValueError)rargs)r r r r s z s2kb.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!ALHfunctions/__pycache__/function_regex_search_ternary.cpython-36.opt-1.pycnu[3 s PK!}22Gfunctions/__pycache__/function_calc_isolated_cores.cpython-36.opt-1.pycnu[3 s    PK!1?Bfunctions/__pycache__/function_cpulist_invert.cpython-36.opt-1.pycnu[3 sz)cpulist_invert.execute..z,,)rrexecutejoinZ_cmd)rargs)r r r rszcpulist_invert.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!1?<functions/__pycache__/function_cpulist_invert.cpython-36.pycnu[3 sz)cpulist_invert.execute..z,,)rrexecutejoinZ_cmd)rargs)r r r rszcpulist_invert.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!<functions/__pycache__/function_cpulist_online.cpython-36.pycnu[3 sz)cpulist_online.execute..)rrexecuteZ_cmdZcpulist_unpackjoinZ read_file)rargsZcpus)r )rr rs zcpulist_online.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK! {{8functions/__pycache__/function_kb2s.cpython-36.opt-1.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)kb2sz* Conversion function: kbytes to sectors cstt|jddddS)Nrr)superr__init__)self) __class__#/usr/lib/python3.6/function_kb2s.pyr sz kb2s.__init__c sBtt|j|sdSytt|ddStk r<dSXdS)Nr)rrexecutestrint ValueError)rargs)r r r r s z kb2s.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!ށ||@functions/__pycache__/function_cpulist2hex_invert.cpython-36.pycnu[3 tt|j|sdS|jjdjdd|jjdj|DS)N,css|]}t|VqdS)N)str).0vr r r sz-cpulist2hex_invert.execute..z,,)rrexecuteZ_cmdZ cpulist2hexjoinZcpulist_invert)rargs)r r r rszcpulist2hex_invert.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!Bfunctions/__pycache__/function_cpulist_online.cpython-36.opt-1.pycnu[3 sz)cpulist_online.execute..)rrexecuteZ_cmdZcpulist_unpackjoinZ read_file)rargsZcpus)r )rr rs zcpulist_online.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!c.mm)functions/__pycache__/base.cpython-36.pycnu[3 s  PK![5;functions/__pycache__/function_cpuinfo_check.cpython-36.pycnu[3 s  PK!c.mm/functions/__pycache__/base.cpython-36.opt-1.pycnu[3 s  PK! {{2functions/__pycache__/function_kb2s.cpython-36.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)kb2sz* Conversion function: kbytes to sectors cstt|jddddS)Nrr)superr__init__)self) __class__#/usr/lib/python3.6/function_kb2s.pyr sz kb2s.__init__c sBtt|j|sdSytt|ddStk r<dSXdS)Nr)rrexecutestrint ValueError)rargs)r r r r s z kb2s.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZFunctionrr r r r s  PK!m-functions/__pycache__/__init__.cpython-36.pycnu[3 sPK!m3functions/__pycache__/__init__.cpython-36.opt-1.pycnu[3 sPK!z0OO9functions/__pycache__/function_strip.cpython-36.opt-1.pycnu[3 ddlZddlZddlmZddlmZGdddejZdS)N)base)commandscs,eZdZdZfddZfddZZS)stripz0 Makes string from all arguments and strip it cstt|jddddS)Nrrr)superr__init__)self) __class__$/usr/lib/python3.6/function_strip.pyr szstrip.__init__cs"tt|j|sdSdj|jS)N)rrexecutejoin)rargs)r r r r sz strip.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedr rZtuned.utils.commandsrZFunctionrr r r r s  PK!E.=functions/__pycache__/function_cpulist_present.cpython-36.pycnu[3 sz*cpulist_present.execute..) rrexecuteZ_cmdZcpulist_unpackjoinZ read_filesortedlistset intersection)rargsZcpusZpresent)r r r rs zcpulist_present.execute)__name__ __module__ __qualname____doc__rr __classcell__r r )r r rs r) osZ tuned.logsZtunedrZtuned.utils.commandsrZlogsgetlogZFunctionrr r r r s    PK!D7functions/__pycache__/function_assertion.cpython-36.pycnu[3 s     PK!A:functions/__pycache__/function_cpulist2devs.cpython-36.pycnu[3 s  PK!f}}"functions/function_cpulist_pack.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands log = tuned.logs.get() class cpulist_pack(base.Function): """ Conversion function: packs CPU list in form 1,2,3,5 to 1-3,5. The cpulist_unpack is used as a preprocessor, so it always returns optimal results. For details about input syntax see cpulist_unpack. """ def __init__(self): # arbitrary number of arguments super(cpulist_pack, self).__init__("cpulist_pack", 0) def execute(self, args): if not super(cpulist_pack, self).execute(args): return None return ",".join(str(v) for v in self._cmd.cpulist_pack(",,".join(args))) PK!Q+functions/function_check_net_queue_count.pynu[import tuned.logs from . import base log = tuned.logs.get() class check_net_queue_count(base.Function): """ Checks whether the user has specified a queue count for net devices. If not, return the number of housekeeping CPUs. """ def __init__(self): # 1 argument super(check_net_queue_count, self).__init__("check_net_queue_count", 1, 1) def execute(self, args): if not super(check_net_queue_count, self).execute(args): return None if args[0].isdigit(): return args[0] (ret, out) = self._cmd.execute(["nproc"]) log.warn("net-dev queue count is not correctly specified, setting it to HK CPUs %s" % (out)) return out PK!@z$functions/function_cpulist_invert.pynu[import os import tuned.logs from . import base from tuned.utils.commands import commands log = tuned.logs.get() class cpulist_invert(base.Function): """ Inverts list of CPUs (makes its complement). For the complement it gets number of online CPUs from the /sys/devices/system/cpu/online, e.g. system with 4 CPUs (0-3), the inversion of list "0,2,3" will be "1" """ def __init__(self): # arbitrary number of arguments super(cpulist_invert, self).__init__("cpulist_invert", 0) def execute(self, args): if not super(cpulist_invert, self).execute(args): return None return ",".join(str(v) for v in self._cmd.cpulist_invert(",,".join(args))) PK!= la) and (nargs_min is None or nargs_min <= la) def execute(self, args): if self._check_args(args, self._nargs_max, self._nargs_min): return True else: log.error("invalid number of arguments for builtin function '%s'" % self._name) return False PK!| loader.pynu[import tuned.profiles.profile import tuned.profiles.variables from tuned.utils.config_parser import ConfigParser, Error import tuned.consts as consts import os.path import collections import tuned.logs import re from tuned.profiles.exceptions import InvalidProfileException log = tuned.logs.get() class Loader(object): """ Profiles loader. """ __slots__ = ["_profile_locator", "_profile_merger", "_profile_factory", "_global_config", "_variables"] def __init__(self, profile_locator, profile_factory, profile_merger, global_config, variables): self._profile_locator = profile_locator self._profile_factory = profile_factory self._profile_merger = profile_merger self._global_config = global_config self._variables = variables def _create_profile(self, profile_name, config): return tuned.profiles.profile.Profile(profile_name, config) @classmethod def safe_name(cls, profile_name): return re.match(r'^[a-zA-Z0-9_.-]+$', profile_name) @property def profile_locator(self): return self._profile_locator def load(self, profile_names): if type(profile_names) is not list: profile_names = profile_names.split() profile_names = list(filter(self.safe_name, profile_names)) if len(profile_names) == 0: raise InvalidProfileException("No profile or invalid profiles were specified.") if len(profile_names) > 1: log.info("loading profiles: %s" % ", ".join(profile_names)) else: log.info("loading profile: %s" % profile_names[0]) profiles = [] processed_files = [] self._load_profile(profile_names, profiles, processed_files) if len(profiles) > 1: final_profile = self._profile_merger.merge(profiles) else: final_profile = profiles[0] final_profile.name = " ".join(profile_names) if "variables" in final_profile.units: self._variables.add_from_cfg(final_profile.units["variables"].options) del(final_profile.units["variables"]) # FIXME hack, do all variable expansions in one place self._expand_vars_in_devices(final_profile) self._expand_vars_in_regexes(final_profile) return final_profile def _expand_vars_in_devices(self, profile): for unit in profile.units: profile.units[unit].devices = self._variables.expand(profile.units[unit].devices) def _expand_vars_in_regexes(self, profile): for unit in profile.units: profile.units[unit].cpuinfo_regex = self._variables.expand(profile.units[unit].cpuinfo_regex) profile.units[unit].uname_regex = self._variables.expand(profile.units[unit].uname_regex) def _load_profile(self, profile_names, profiles, processed_files): for name in profile_names: filename = self._profile_locator.get_config(name, processed_files) if filename == "": continue if filename is None: raise InvalidProfileException("Cannot find profile '%s' in '%s'." % (name, list(reversed(self._profile_locator._load_directories)))) processed_files.append(filename) config = self._load_config_data(filename) profile = self._profile_factory.create(name, config) if "include" in profile.options: include_names = re.split(r"\s*[,;]\s*", self._variables.expand(profile.options.pop("include"))) self._load_profile(include_names, profiles, processed_files) profiles.append(profile) def _expand_profile_dir(self, profile_dir, string): return re.sub(r'(? merger.pynu[PK!]  unit.pynu[PK!F locator.pynu[PK!?4^^%#__pycache__/exceptions.cpython-36.pycnu[PK!$0%V%__pycache__/unit.cpython-36.opt-1.pycnu[PK!pm5TT!3__pycache__/merger.cpython-36.pycnu[PK!@ (n;__pycache__/factory.cpython-36.opt-1.pycnu[PK! _(=__pycache__/profile.cpython-36.opt-1.pycnu[PK!Yll'E__pycache__/loader.cpython-36.opt-1.pycnu[PK!?4^^+U__pycache__/exceptions.cpython-36.opt-1.pycnu[PK!Wqxx(W__pycache__/locator.cpython-36.opt-1.pycnu[PK!Yll!cf__pycache__/loader.cpython-36.pycnu[PK!$0 w__pycache__/unit.cpython-36.pycnu[PK!qZ/ $__pycache__/variables.cpython-36.pycnu[PK!Wqxx"__pycache__/locator.cpython-36.pycnu[PK!\#___pycache__/__init__.cpython-36.pycnu[PK!@ ";__pycache__/factory.cpython-36.pycnu[PK!pm5TT'k__pycache__/merger.cpython-36.opt-1.pycnu[PK!\)__pycache__/__init__.cpython-36.opt-1.pycnu[PK!qZ/ *__pycache__/variables.cpython-36.opt-1.pycnu[PK! _"__pycache__/profile.cpython-36.pycnu[PK!Ao$ $ svariables.pynu[PK!++)functions/function_assertion_non_equal.pynu[PK!Ud!Wfunctions/function_cpulist2hex.pynu[PK!QW##~functions/__init__.pynu[PK!j$functions/function_cpulist_online.pynu[PK!0Nkk)functions/function_calc_isolated_cores.pynu[PK!G5"functions/function_cpulist2devs.pynu[PK!functions/function_exec.pynu[PK!{k***functions/function_regex_search_ternary.pynu[PK!,!\functions/function_hex2cpulist.pynu[PK!E"SS functions/function_virt_check.pynu[PK!$X(functions/repository.pynu[PK!RU%sfunctions/function_cpulist_present.pynu[PK!mg{functions/function_strip.pynu[PK!3wB B 4\functions/__pycache__/functions.cpython-36.opt-1.pycnu[PK!nIIBfunctions/__pycache__/function_cpulist_unpack.cpython-36.opt-1.pycnu[PK!}22Afunctions/__pycache__/function_calc_isolated_cores.cpython-36.pycnu[PK!{IG` functions/__pycache__/function_assertion_non_equal.cpython-36.opt-1.pycnu[PK!k1@functions/__pycache__/function_cpulist_pack.cpython-36.opt-1.pycnu[PK!A@ functions/__pycache__/function_cpulist2devs.cpython-36.opt-1.pycnu[PK!33/ functions/__pycache__/repository.cpython-36.pycnu[PK!ށ||Ffunctions/__pycache__/function_cpulist2hex_invert.cpython-36.opt-1.pycnu[PK!k1:$functions/__pycache__/function_cpulist_pack.cpython-36.pycnu[PK!D=)functions/__pycache__/function_assertion.cpython-36.opt-1.pycnu[PK![5A.functions/__pycache__/function_cpuinfo_check.cpython-36.opt-1.pycnu[PK!q{nn25functions/__pycache__/function_exec.cpython-36.pycnu[PK!q{nn88functions/__pycache__/function_exec.cpython-36.opt-1.pycnu[PK!jTTC<functions/__pycache__/function_check_net_queue_count.cpython-36.pycnu[PK!Jbo"">Afunctions/__pycache__/function_virt_check.cpython-36.opt-1.pycnu[PK!jTTIFfunctions/__pycache__/function_check_net_queue_count.cpython-36.opt-1.pycnu[PK!Af;;?Jfunctions/__pycache__/function_hex2cpulist.cpython-36.opt-1.pycnu[PK!_5Ofunctions/__pycache__/repository.cpython-36.opt-1.pycnu[PK!{IAVfunctions/__pycache__/function_assertion_non_equal.cpython-36.pycnu[PK!E.C[\functions/__pycache__/function_cpulist_present.cpython-36.opt-1.pycnu[PK!Jbo""8afunctions/__pycache__/function_virt_check.cpython-36.pycnu[PK!z0OO3[ffunctions/__pycache__/function_strip.cpython-36.pycnu[PK!5 ? jfunctions/__pycache__/function_cpulist2hex.cpython-36.opt-1.pycnu[PK!Af;;9nfunctions/__pycache__/function_hex2cpulist.cpython-36.pycnu[PK!ALBrfunctions/__pycache__/function_regex_search_ternary.cpython-36.pycnu[PK!3wB B .wfunctions/__pycache__/functions.cpython-36.pycnu[PK!5 9functions/__pycache__/function_cpulist2hex.cpython-36.pycnu[PK!!B8functions/__pycache__/function_s2kb.cpython-36.opt-1.pycnu[PK!nII<functions/__pycache__/function_cpulist_unpack.cpython-36.pycnu[PK!!B2_functions/__pycache__/function_s2kb.cpython-36.pycnu[PK!ALHKfunctions/__pycache__/function_regex_search_ternary.cpython-36.opt-1.pycnu[PK!}22Gfunctions/__pycache__/function_calc_isolated_cores.cpython-36.opt-1.pycnu[PK!1?B[functions/__pycache__/function_cpulist_invert.cpython-36.opt-1.pycnu[PK!1?<functions/__pycache__/function_cpulist_invert.cpython-36.pycnu[PK!<functions/__pycache__/function_cpulist_online.cpython-36.pycnu[PK! {{8)functions/__pycache__/function_kb2s.cpython-36.opt-1.pycnu[PK!ށ||@ functions/__pycache__/function_cpulist2hex_invert.cpython-36.pycnu[PK!Bfunctions/__pycache__/function_cpulist_online.cpython-36.opt-1.pycnu[PK!c.mm)4functions/__pycache__/base.cpython-36.pycnu[PK![5;functions/__pycache__/function_cpuinfo_check.cpython-36.pycnu[PK!c.mm/functions/__pycache__/base.cpython-36.opt-1.pycnu[PK! {{2functions/__pycache__/function_kb2s.cpython-36.pycnu[PK!m-functions/__pycache__/__init__.cpython-36.pycnu[PK!m3functions/__pycache__/__init__.cpython-36.opt-1.pycnu[PK!z0OO9functions/__pycache__/function_strip.cpython-36.opt-1.pycnu[PK!E.=efunctions/__pycache__/function_cpulist_present.cpython-36.pycnu[PK!D7functions/__pycache__/function_assertion.cpython-36.pycnu[PK!A:functions/__pycache__/function_cpulist2devs.cpython-36.pycnu[PK!f}}"functions/function_cpulist_pack.pynu[PK!Q+functions/function_check_net_queue_count.pynu[PK!@z$functions/function_cpulist_invert.pynu[PK!