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
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
"""Serial Number Arthimetic from RFC 1982"""
class Serial:
def __init__(self, value: int, bits: int = 32):
self.value = value % 2**bits
self.bits = bits
def __repr__(self):
return f"dns.serial.Serial({self.value}, {self.bits})"
def __eq__(self, other):
if isinstance(other, int):
other = Serial(other, self.bits)
elif not isinstance(other, Serial) or other.bits != self.bits:
return NotImplemented
return self.value == other.value
def __ne__(self, other):
if isinstance(other, int):
other = Serial(other, self.bits)
elif not isinstance(other, Serial) or other.bits != self.bits:
return NotImplemented
return self.value != other.value
def __lt__(self, other):
if isinstance(other, int):
other = Serial(other, self.bits)
elif not isinstance(other, Serial) or other.bits != self.bits:
return NotImplemented
if self.value < other.value and other.value - self.value < 2 ** (self.bits - 1):
return True
elif self.value > other.value and self.value - other.value > 2 ** (
self.bits - 1
):
return True
else:
return False
def __le__(self, other):
return self == other or self < other
def __gt__(self, other):
if isinstance(other, int):
other = Serial(other, self.bits)
elif not isinstance(other, Serial) or other.bits != self.bits:
return NotImplemented
if self.value < other.value and other.value - self.value > 2 ** (self.bits - 1):
return True
elif self.value > other.value and self.value - other.value < 2 ** (
self.bits - 1
):
return True
else:
return False
def __ge__(self, other):
return self == other or self > other
def __add__(self, other):
v = self.value
if isinstance(other, Serial):
delta = other.value
elif isinstance(other, int):
delta = other
else:
raise ValueError
if abs(delta) > (2 ** (self.bits - 1) - 1):
raise ValueError
v += delta
v = v % 2**self.bits
return Serial(v, self.bits)
def __iadd__(self, other):
v = self.value
if isinstance(other, Serial):
delta = other.value
elif isinstance(other, int):
delta = other
else:
raise ValueError
if abs(delta) > (2 ** (self.bits - 1) - 1):
raise ValueError
v += delta
v = v % 2**self.bits
self.value = v
return self
def __sub__(self, other):
v = self.value
if isinstance(other, Serial):
delta = other.value
elif isinstance(other, int):
delta = other
else:
raise ValueError
if abs(delta) > (2 ** (self.bits - 1) - 1):
raise ValueError
v -= delta
v = v % 2**self.bits
return Serial(v, self.bits)
def __isub__(self, other):
v = self.value
if isinstance(other, Serial):
delta = other.value
elif isinstance(other, int):
delta = other
else:
raise ValueError
if abs(delta) > (2 ** (self.bits - 1) - 1):
raise ValueError
v -= delta
v = v % 2**self.bits
self.value = v
return self