Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 18.190.219.46
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3 /
dist-packages /
landscape /
lib /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2024-09-18 19:49
apt
[ DIR ]
drwxr-xr-x
2024-09-18 19:49
__init__.py
198
B
-rw-r--r--
2023-02-07 18:55
amp.py
21.24
KB
-rw-r--r--
2023-02-07 18:55
backoff.py
1.64
KB
-rw-r--r--
2023-02-07 18:55
base64.py
196
B
-rw-r--r--
2023-02-07 18:55
bootstrap.py
1.38
KB
-rw-r--r--
2023-02-07 18:55
bpickle.py
6.32
KB
-rw-r--r--
2023-02-07 18:55
cli.py
440
B
-rw-r--r--
2023-02-07 18:55
cloud.py
1.67
KB
-rw-r--r--
2023-02-07 18:55
compat.py
616
B
-rw-r--r--
2023-02-07 18:55
config.py
12.19
KB
-rw-r--r--
2023-02-07 18:55
disk.py
4.91
KB
-rw-r--r--
2023-02-07 18:55
encoding.py
545
B
-rw-r--r--
2023-02-07 18:55
fd.py
751
B
-rw-r--r--
2023-02-07 18:55
fetch.py
6.49
KB
-rw-r--r--
2023-02-07 18:55
format.py
959
B
-rw-r--r--
2023-02-07 18:55
fs.py
3.8
KB
-rw-r--r--
2023-02-07 18:55
gpg.py
1.75
KB
-rw-r--r--
2023-02-07 18:55
hashlib.py
264
B
-rw-r--r--
2023-02-07 18:55
jiffies.py
1.58
KB
-rw-r--r--
2023-02-07 18:55
juju.py
860
B
-rw-r--r--
2023-02-07 18:55
lock.py
705
B
-rw-r--r--
2023-02-07 18:55
log.py
484
B
-rw-r--r--
2023-02-07 18:55
logging.py
2.47
KB
-rw-r--r--
2023-02-07 18:55
lsb_release.py
1.82
KB
-rw-r--r--
2023-02-07 18:55
message.py
2.58
KB
-rw-r--r--
2023-02-07 18:55
monitor.py
6.13
KB
-rw-r--r--
2023-02-07 18:55
network.py
9.54
KB
-rw-r--r--
2023-02-07 18:55
persist.py
20.5
KB
-rw-r--r--
2023-02-07 18:55
plugin.py
1.75
KB
-rw-r--r--
2023-02-07 18:55
process.py
6.45
KB
-rw-r--r--
2023-02-07 18:55
reactor.py
8.61
KB
-rw-r--r--
2023-02-07 18:55
schema.py
6.31
KB
-rw-r--r--
2023-02-07 18:55
scriptcontent.py
522
B
-rw-r--r--
2023-02-07 18:55
sequenceranges.py
5.59
KB
-rw-r--r--
2023-02-07 18:55
store.py
1.38
KB
-rw-r--r--
2023-02-07 18:55
sysstats.py
7.73
KB
-rw-r--r--
2023-02-07 18:55
tag.py
506
B
-rw-r--r--
2023-02-07 18:55
testing.py
24.08
KB
-rw-r--r--
2023-02-07 18:55
timestamp.py
233
B
-rw-r--r--
2023-02-07 18:55
twisted_util.py
4.37
KB
-rw-r--r--
2023-02-07 18:55
user.py
1.44
KB
-rw-r--r--
2023-02-07 18:55
versioning.py
1.24
KB
-rw-r--r--
2023-02-07 18:55
vm_info.py
3.1
KB
-rw-r--r--
2023-02-07 18:55
warning.py
394
B
-rw-r--r--
2023-02-07 18:55
Save
Rename
from twisted.python.compat import xrange class SequenceError(Exception): """Raised when the sequence isn't proper for translation to ranges.""" class SequenceRanges(object): """High level interface to ranges. A ranges list represent a sequence of ordered and non-repeating elements into a more compact format, by representing 3 or more consecutive entries by a range. This means that a sequence such as [1, 2, 4, 5, 6, 8, 10, 11, 12, 14] becomes [1, 2, (4, 6), 8, (10, 12), 14] """ def __init__(self): self._ranges = [] @classmethod def from_sequence(cls, sequence): obj = cls() obj._ranges[:] = sequence_to_ranges(sequence) return obj @classmethod def from_ranges(cls, ranges): obj = cls() obj._ranges[:] = ranges return obj def to_sequence(self): return list(ranges_to_sequence(self._ranges)) def to_ranges(self): return list(self._ranges) def __iter__(self): return ranges_to_sequence(self._ranges) def __contains__(self, item): index = find_ranges_index(self._ranges, item) if index < len(self._ranges): test = self._ranges[index] if isinstance(test, tuple): return (test[0] <= item <= test[1]) return (test == item) return False def add(self, item): add_to_ranges(self._ranges, item) def remove(self, item): remove_from_ranges(self._ranges, item) def sequence_to_ranges(sequence): """Iterate over range items that compose the given sequence.""" iterator = iter(sequence) try: range_start = range_stop = next(iterator) except StopIteration: return while range_start is not None: try: item = next(iterator) except StopIteration: item = None if item == range_stop + 1: range_stop += 1 else: if item is not None and item <= range_stop: if item < range_stop: raise SequenceError("Sequence is unordered (%r < %r)" % (item, range_stop)) else: raise SequenceError("Found duplicated item (%r)" % (item,)) if range_stop == range_start: yield range_start elif range_stop == range_start + 1: yield range_start yield range_stop else: yield (range_start, range_stop) range_start = range_stop = item def ranges_to_sequence(ranges): """Iterate over individual items represented in a ranges list.""" for item in ranges: if isinstance(item, tuple): start, end = item if start > end: raise ValueError("Range error %d > %d", start, end) for item in xrange(start, end + 1): yield item else: yield item def find_ranges_index(ranges, item): """Find the index where an entry *may* be.""" lo = 0 hi = len(ranges) while lo < hi: mid = (lo + hi) // 2 test = ranges[mid] try: test = test[1] except TypeError: pass if item > test: lo = mid + 1 else: hi = mid return lo def add_to_ranges(ranges, item): """Insert item in ranges, reorganizing as needed.""" index_start = index_stop = index = find_ranges_index(ranges, item) range_start = range_stop = item ranges_len = len(ranges) # Look for duplicates. if index < ranges_len: test = ranges[index] if isinstance(test, tuple): if test[0] <= item <= test[1]: return elif test == item: return # Merge to the left side. while index_start > 0: test = ranges[index_start - 1] if isinstance(test, tuple): if test[1] != range_start - 1: break range_start = test[0] else: if test != range_start - 1: break range_start -= 1 index_start -= 1 # Merge to the right side. while index_stop < ranges_len: test = ranges[index_stop] if isinstance(test, tuple): if test[0] != range_stop + 1: break range_stop = test[1] else: if test != range_stop + 1: break range_stop += 1 index_stop += 1 if range_stop - range_start < 2: ranges.insert(index, item) else: ranges[index_start:index_stop] = ((range_start, range_stop),) def remove_from_ranges(ranges, item): """Remove item from ranges, reorganizing as needed.""" index = find_ranges_index(ranges, item) ranges_len = len(ranges) if index < ranges_len: test = ranges[index] if isinstance(test, tuple): range_start, range_stop = test if item >= range_start: # Handle right side of the range (and replace original item). if range_stop < item + 3: ranges[index:index + 1] = range(item + 1, range_stop + 1) else: ranges[index:index + 1] = ((item + 1, range_stop),) # Handle left side of the range. if range_start > item - 3: if range_start != item: ranges[index:index] = range(range_start, item) else: ranges[index:index] = ((range_start, item - 1),) elif item == test: del ranges[index]