• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python bin函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中bin函数的典型用法代码示例。如果您正苦于以下问题:Python bin函数的具体用法?Python bin怎么用?Python bin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了bin函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: __init__

 def __init__(self, val=0, min=None, max=None, _nrbits=0):
     if _nrbits:
         self._min = 0
         self._max = 2**_nrbits
     else:
         self._min = min
         self._max = max
         if max is not None and min is not None:
             if min >= 0:
                 _nrbits = len(bin(max-1))
             elif max <= 1:
                 _nrbits = len(bin(min))
             else:
                 # make sure there is a leading zero bit in positive numbers
                 _nrbits = maxfunc(len(bin(max-1))+1, len(bin(min)))
     if isinstance(val, (int, long)):
         self._val = val
     elif isinstance(val, StringType):
         mval = val.replace('_', '')
         self._val = long(mval, 2)
         _nrbits = len(val)
     elif isinstance(val, intbv):
         self._val = val._val
         self._min = val._min
         self._max = val._max
         _nrbits = val._nrbits
     else:
         raise TypeError("intbv constructor arg should be int or string")
     self._nrbits = _nrbits
     self._handleBounds()
开发者ID:forrestv,项目名称:myhdl,代码行数:30,代码来源:_intbv.py


示例2: to_word

    def to_word(self,data):
        buf = bytearray(data)
        
        print len(buf)
        a = (3,6,7,4,7,10,5)
        b = (5,2,7,4,1,9,3)
        j = 0
        x = {}
        for i in range(0,6):
            if(i == 2):
                x[i] = buf[j] << a[i] &((2^(11-a[j])-1) << a[i]) | b[3] << 1 | buf[3+1] >> b[i]
                j = j + 2
            elif(i == 5):
                x[i] = buf[j] << a[i] & ((2^(11-a[i])-1) << a[i]) | buf[7] << 2 | buf[7+1] >> b[i]
                j = j + 2
            elif(i == 6):
                x[i] = buf[9] & ((2^6-1) << 3)
            else:
                print "%d %d" % (i,j)
                x[i] = buf[j] << a[i] & ((2^(11-a[i])-1) << a[i]) | buf[j+1] >> b[i]
                j = j + 1

        for i in range(0,10):
            print str(bin(buf[i])).split('b')[1],
        print "\n"
    
        for i in range(0,7):
            print str(bin(x[i])).split('b')[1],
        print "\n"
开发者ID:hellais,项目名称:Onion-url,代码行数:29,代码来源:otp.py


示例3: read_bitpacked_deprecated

def read_bitpacked_deprecated(fo, byte_count, count, width):
    raw_bytes = array.array('B', fo.read(byte_count)).tolist()

    mask = _mask_for_bits(width)
    index = 0
    res = []
    word = 0
    bits_in_word = 0
    while len(res) < count and index <= len(raw_bytes):
        logger.debug("index = %d", index)
        logger.debug("bits in word = %d", bits_in_word)
        logger.debug("word = %s", bin(word))
        if bits_in_word >= width:
            # how many bits over the value is stored
            offset = (bits_in_word - width)
            logger.debug("offset = %d", offset)

            # figure out the value
            value = (word & (mask << offset)) >> offset
            logger.debug("value = %d (%s)", value, bin(value))
            res.append(value)

            bits_in_word -= width
        else:
            word = (word << 8) | raw_bytes[index]
            index += 1
            bits_in_word += 8
    return res
开发者ID:18600597055,项目名称:hue,代码行数:28,代码来源:encoding.py


示例4: stimulus

 def stimulus():
     for i in range(8):
         value = random.randint(-(2**15), 2**15-1)
         data_in.next = intbv( value, min=-(2**15), max=2**15-1)
         
         print "In: %s (%i) | Out: %s (%i)" % (bin(data_in, 16), data_in, bin(data_out, 32), data_out)
         yield delay(5)
开发者ID:enricmcalvo,项目名称:pymips,代码行数:7,代码来源:sign_extender.py


示例5: GF2_span

def GF2_span(D, L):
    '''
    >>> from GF2 import one
    >>> D = {'a', 'b', 'c'}
    >>> L = [Vec(D, {'a': one, 'c': one}), Vec(D, {'b': one})]
    >>> len(GF2_span(D, L))
    4
    >>> Vec(D, {}) in GF2_span(D, L)
    True
    >>> Vec(D, {'b': one}) in GF2_span(D, L)
    True
    >>> Vec(D, {'a':one, 'c':one}) in GF2_span(D, L)
    True
    >>> Vec(D, {x:one for x in D}) in GF2_span(D, L)
    True
    '''
    from GF2 import one
    span=[]
    S=2**len(L)
    for i in range(S) :
        ms = [one if (len(bin(i))-2 >k and bin(i)[len(bin(i))-k-1]=='1') else 0 for k in reversed(range(len(L)))]
        v_sum=Vec(D,{})
        for j in range(len(L)):
            v_sum+=ms[j]*L[j]
        span.append(v_sum)
    
    return span
开发者ID:johnmerm,项目名称:matrix,代码行数:27,代码来源:hw2.py


示例6: readImageData

def readImageData(rowsize,padding,width,inFile):
    EOF = False
    unpaddedImage = bytearray()
    i = 1

    #Undefined bits in the byte at the end of a row (not counting 4-byte padding)
    #A 100-pixel row's pixels take up 100 bits, or 12.5 bytes. This means that there
    #are 8*0.5 (4) unused bits at the end, which must be set to FF so that they will be
    #white after inversion later
    unusedBits = int((math.ceil(width/8.0)-(width/8.0))*8)

    #Binary mask to OR with the last byte; if there are 5 unused bits then the mask will
    #be 00011111
    unusedBitsMask = int(pow(2,unusedBits)-1)
    print bin(unusedBitsMask)
    while not EOF:
        try:
            readByte = int(binascii.hexlify(inFile.read(1)),16)
            if i == rowsize-padding:
                inFile.seek(padding,1) #Skip the padding at the end of the row
                i = 1
                unpaddedImage.append(readByte | unusedBitsMask)
            else:
                unpaddedImage.append(readByte)
                i += 1
        except ValueError:
            EOF = True
    return unpaddedImage
开发者ID:OHRI-BioInfo,项目名称:pyZPL,代码行数:28,代码来源:bmpread.py


示例7: createPattern

 def createPattern(self,details=2):
     if details in [0,1]:
         return None
     elif details == 2:
         cell=self.coords
         name=str(cell[0])+"-"+str(cell[1])
         bitDist=self.descriptor.bitDistance
         zero=[-self.descriptor.markerArea[i]/2. for i in [0,1]]
         BITS=Structure("CellBits_"+name)
         CIRCLEMARKER=self.createCircleMarker()
         bit=[int(i) for i in bin(int(cell[0]))[::-1][:-2]]
         ##TODO use descriptor.getBits(cell)
         for i,b in enumerate(bit):
             if b:
                 x=zero[0]+mod(i+1,self.descriptor.noBitsX)*bitDist
                 y=zero[1]+((i+1)/self.descriptor.noBitsY)*bitDist
                 BITS.insertElement(CIRCLEMARKER,xy=(x,y))
         bit=[int(i) for i in bin(int(cell[1]))[::-1][:-2]]
         for i,b in enumerate(bit):
             if b:
                 x=zero[0]+(self.descriptor.noBitsX-mod(i+1,self.descriptor.noBitsX)-1)*bitDist
                 y=zero[1]+(self.descriptor.noBitsY-(i+1)/self.descriptor.noBitsY-1)*bitDist
                 BITS.insertElement(CIRCLEMARKER,xy=(x,y))
         return BITS
     else:
         raise ValueError("details can be 0,1,2")
开发者ID:drueffer,项目名称:apage_rom,代码行数:26,代码来源:PatternGenerator.py


示例8: hamming_code_distance

def hamming_code_distance(string1, string2):
    """
    Compute the Hamming Code distance between two strings
    """
    if len(string1) is not len(string2):
        # If strings are different lengths, truncate the longer one so that you
        # can do the compare
        string1 = string1[0:len(string2)]
        string2 = string2[0:len(string1)]
        #raise Exception("Buffers are different lengths!")
    bytes1=string1.encode()
    bytes2=string2.encode()
    i = 0
    hamming_distance = 0
    while i < len(bytes1):
        char1 = bytes1[i]
        char2 = bytes2[i]
        bin1 = "{:0>8}".format(bin(char1)[2:])
        bin2 = "{:0>8}".format(bin(char2)[2:])
        j = 0
        thisbyte_hd = 0
        while j < 8:
            if bin1[j] is not bin2[j]:
                thisbyte_hd +=1
                hamming_distance += 1
            j +=1
        i +=1
    return hamming_distance
开发者ID:mrled,项目名称:education,代码行数:28,代码来源:cryptopals.py


示例9: bitSwapRequired

 def bitSwapRequired(self, a, b):
     xor_ab = a ^ b
     #count '1' in bits of xor result if the result is positive value
     if xor_ab >= 0:
         return bin(xor_ab).count('1')
     else:
         #suppose 32 bits integer
         MAX_BITS_LEN = 32
         #use compliment bits to represent negative value
         bits_without_sign = bin(xor_ab)[3:].zfill(MAX_BITS_LEN - 1)
         bits_inverted = bits_without_sign.replace('1','r').replace('0','1').replace('r','0')
         carry_bit = None
         #the sign bit must be '1', so initialize the counter with 1
         count_1_of_compliment_bits = 1
         #calculate the compliment bits by adding 1 to bits_inverted
         for i in range(len(bits_inverted)-1,-1,-1):
             if carry_bit == None:
                 if bits_inverted[i] == '1':
                     carry_bit = 1
                     continue
             else:
                 if bits_inverted[i] == '1' and carry_bit == 1:
                     continue
                 if bits_inverted[i] == '0' and carry_bit == 0:
                     continue
             count_1_of_compliment_bits += 1
             carry_bit = 0
         return count_1_of_compliment_bits
开发者ID:zhangw,项目名称:lintcode_practices,代码行数:28,代码来源:flip_bits.py


示例10: late

def late(n, p):
        result = 0
        for i in range(1, 2**n + 1):
                if '111' in bin(i):
                        lates = bin(i).count('1')
                        result += p**lates * (1 - p)**(n - lates)
        return 1 - result
开发者ID:snskshn,项目名称:algo,代码行数:7,代码来源:ans1.py


示例11: test_set_bit_no_actual_change

 def test_set_bit_no_actual_change(self):
     initial = "10010100"  # 148 in binary
     output = Encrypter.set_bit(int(initial, 2), 6, 0)
     self.assertEqual(bin(output)[2:], initial)
     initial = "10010100"  # 148 in binary
     output = Encrypter.set_bit(int(initial, 2), 2, 1)
     self.assertEqual(bin(output)[2:], initial)
开发者ID:blady001,项目名称:ImgEncrypter,代码行数:7,代码来源:test_models.py


示例12: test_unaligned_native_struct_fields

    def test_unaligned_native_struct_fields(self):
        if sys.byteorder == "little":
            fmt = "<b h xi xd"
        else:
            base = LittleEndianStructure
            fmt = ">b h xi xd"

        class S(Structure):
            _pack_ = 1
            _fields_ = [("b", c_byte),

                        ("h", c_short),

                        ("_1", c_byte),
                        ("i", c_int),

                        ("_2", c_byte),
                        ("d", c_double)]

        s1 = S()
        s1.b = 0x12
        s1.h = 0x1234
        s1.i = 0x12345678
        s1.d = 3.14
        s2 = bytes(struct.pack(fmt, 0x12, 0x1234, 0x12345678, 3.14))
        self.assertEqual(bin(s1), bin(s2))
开发者ID:BillyboyD,项目名称:main,代码行数:26,代码来源:test_byteswap.py


示例13: shortest_path

def shortest_path(start, end, upper_limit):
    visited = set([])

    # Maintain a tuple for (number, path length)
    agenda = [(start,1,[start])]

    # Perform a breadth first search
    while len(agenda) > 0:
        cur, length, path = agenda.pop(0)

        # Do not repeat visited numbers
        if cur in visited:
            continue

        visited.add(cur)
        
        for diff in differences:
            top = cur + diff
            bottom = cur - diff
            
            # Found the shortest path
            if top == end or bottom == end:
                tot = path + [end]
                for i in tot:
                    print bin(i), i
                return length + 1

            # Prune for range and if it is prime
            if top <= upper_limit and is_prime(top):
                agenda.append((top,length+1,path+[top]))
            if bottom >= 2 and is_prime(bottom):
                agenda.append((bottom,length+1,path+[bottom]))
开发者ID:pratheeknagaraj,项目名称:bio_solutions,代码行数:32,代码来源:bio-2016-1-3.py


示例14: cross_1

def cross_1(set):
    for i in range(len(set)):
        for j in range(len(set[i])):
            rand_seq = range(len(set[i][j]))
            random.shuffle(rand_seq)
            for k in range(len(rand_seq)/2):
                n_1, n_2 = rand_seq[k], rand_seq[len(rand_seq)-k-1]
                if i in [0, 2, 4]:
                    p_1, p_2 = (bin(int(set[i][j][n_1]))[2:]), (bin(int(set[i][j][n_2]))[2:])
                    p_1, p_2 = p_1.zfill(30), p_2.zfill(30)
                if i in [1, 3]:
                    p_1, p_2 = (bin(int(set[i][j][n_1]))[2:]), (bin(int(set[i][j][n_2]))[2:])
                    p_1, p_2 = p_1.zfill(30), p_2.zfill(30)
                n = 0
                for x in range(0,len(p_1)):
                    if p_2[x] == '1':
                        n = x
                        break
                    elif p_1[x] == '1':
                        n = x
                        break
                if n > (len(p_1)-1):
                    ran_num = random.sample(xrange(n, len(p_1)-1), 2)
                    r_n1, r_n2 = ran_num[0], ran_num[1]
                    if r_n1 > r_n2:
                        r_n1, r_n2 = r_n2, r_n1
                    for l in range(r_n1,r_n2):
                        p_2, p_1 = p_2[0:l] + str(p_1[l]) + p_2[l+1:], p_1[0:l] +  str(p_2[l]) + p_1[l+1:]
                    print p_1, p_2
                    set[i][j][n_1], set[i][j][n_2] = int(p_1,2), int(p_2,2)
    return mut_1(set)
开发者ID:rahulpenti,项目名称:Genetic-Algorithm-Supply-Chain-,代码行数:31,代码来源:main.py


示例15: updatefromremote

def updatefromremote(ui, repo, remotemarks, path, trfunc, explicit=()):
    ui.debug("checking for updated bookmarks\n")
    localmarks = repo._bookmarks
    (addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same
     ) = compare(repo, remotemarks, localmarks, dsthex=hex)

    status = ui.status
    warn = ui.warn
    if ui.configbool('ui', 'quietbookmarkmove', False):
        status = warn = ui.debug

    explicit = set(explicit)
    changed = []
    for b, scid, dcid in addsrc:
        if scid in repo: # add remote bookmarks for changes we already have
            changed.append((b, bin(scid), status,
                            _("adding remote bookmark %s\n") % (b)))
        elif b in explicit:
            explicit.remove(b)
            ui.warn(_("remote bookmark %s points to locally missing %s\n")
                    % (b, scid[:12]))

    for b, scid, dcid in advsrc:
        changed.append((b, bin(scid), status,
                        _("updating bookmark %s\n") % (b)))
    # remove normal movement from explicit set
    explicit.difference_update(d[0] for d in changed)

    for b, scid, dcid in diverge:
        if b in explicit:
            explicit.discard(b)
            changed.append((b, bin(scid), status,
                            _("importing bookmark %s\n") % (b)))
        else:
            snode = bin(scid)
            db = _diverge(ui, b, path, localmarks, snode)
            if db:
                changed.append((db, snode, warn,
                                _("divergent bookmark %s stored as %s\n") %
                                (b, db)))
            else:
                warn(_("warning: failed to assign numbered name "
                       "to divergent bookmark %s\n") % (b))
    for b, scid, dcid in adddst + advdst:
        if b in explicit:
            explicit.discard(b)
            changed.append((b, bin(scid), status,
                            _("importing bookmark %s\n") % (b)))
    for b, scid, dcid in differ:
        if b in explicit:
            explicit.remove(b)
            ui.warn(_("remote bookmark %s points to locally missing %s\n")
                    % (b, scid[:12]))

    if changed:
        tr = trfunc()
        for b, node, writer, msg in sorted(changed):
            localmarks[b] = node
            writer(msg)
        localmarks.recordchange(tr)
开发者ID:cmjonze,项目名称:mercurial,代码行数:60,代码来源:bookmarks.py


示例16: __init__

	def __init__(self, mips, instrucao):
		self.mips = mips
		self.rs = bin(eval("0b"+instrucao[6:11]))
		self.rt = bin(eval("0b"+instrucao[11:16]))
		self.rd = bin(eval("0b"+instrucao[16:21]))
		self.shamt = bin(eval("0b"+instrucao[21:26]))
		self.isMul = False
开发者ID:vsmontalvao,项目名称:mips,代码行数:7,代码来源:models.py


示例17: computeNewR

    def computeNewR(self, nodesR, competitorsR):
        """ Metoda wylicza nowa wartosc r dla wezla na podstawie wartosci jego konkutenta.
        
        Argumenty:
        nodesR - wartosc r dla wezla, ktory jest aktualnie rozpatryway
        competitorsR - wartosc r (konkurenta), na podstawie ktorej zostanie obliczone nowe r
        """
        
        # warunek potrzebny w przypadku malych ID
        if nodesR < competitorsR:
            return 0
        
        # obliczanie nowego r dla rozpatrywanego wezla
        binNodesR       = bin(nodesR)
        binCompetitorsR = bin(competitorsR)

        # teraz to sa 2 stringi - obciecie dwoch pierwszych znakow
        binNodesR       = binNodesR[2:]
        binCompetitorsR = binCompetitorsR[2:]

        # miejsce prependowania zera nie jest do konca jasne:
        # wezmy binNodeR = 1, binCompR = 10
        # w przypadku doczepiania zera z lewej, dostajemy:
        # binNodeR = 01, binCompR = 10

        while len(binCompetitorsR)  > len(binNodesR):
            binNodesR       = ''.join(['0', binNodesR])
    
        while len(binNodesR)        > len(binCompetitorsR):
            binCompetitorsR = ''.join(['0', binCompetitorsR])
            
        # teraz sprawdzanie, czy wartosc r wezla jest mniejsza niz wartosc r competitora
        decNodesR       = int(binNodesR, 2)
        decCompetitorsR = int(binCompetitorsR, 2)
        
        # jesli wezel ma najmniejsze r, to nowa wartosc r <- 0
        if decNodesR < decCompetitorsR:
            return 0

        # algorytm operuje na odwroconych napisach, ale w implementacji z pythonem
        # wykorzystany jest fakt, ze tablice sa numerowane od 0
        # w tym momencie na pozycji nr 0 w implementacji jest znak,
        # ktory bylby na samym koncu stringa w opisie teoretycznym/pseidokodzie
        
        # szukanie indeksow
        # liczymy nie od 0, ale od 1!
        # zwracamy ten indeks, gdzie binNodesR, a binCompetitorsR = 0
        i       = 0
        length  = len(binNodesR)
        
        while i < length:
            if binNodesR[i] == '1' and binCompetitorsR[i] == '0':
                break
            
            i+=1
    
        index   = len(binNodesR) - i # bo zaczynamy liczenie indeksow od 1, nie od zera
        # taki wymog pracy
        
        return index
开发者ID:skltl,项目名称:log_star_sim,代码行数:60,代码来源:log_star_MIS.py


示例18: addBinSlow

def addBinSlow(a, b):
    aBin = bin(a)[2:]
    bBin = bin(b)[2:]

    lA = len(aBin)
    lB = len(bBin)

    if lA > lB:
        bBin = bBin.zfill(lA)
    elif lB > lA:
        aBin = aBin.zfill(lB)

    assert len(aBin) == len(bBin)

    res = len(aBin) * ['']
    k = 0
    for i, j in zip(aBin, bBin):
        if i == '0' and j == '0':
            out = '0'
        elif i == '0' and j == '1':
            out = '1'
        elif i == '1' and j == '0':
            out = '1'
        elif i == '1' and j == '1':
            out = '0'
        else:
            print 'Error'

        res[k] = out
        k += 1

    binResult = ''.join(res)
    return s2b(binResult)
开发者ID:Letractively,项目名称:pytof,代码行数:33,代码来源:C.py


示例19: getBits

 def getBits(self,cell):
         zero=[-self.markerArea[i]/2. for i in [0,1]]
         bitx=[int(i) for i in bin(int(cell[0]))[::-1][:-2]]
         bity=[int(i) for i in bin(int(cell[1]))[::-1][:-2]]
         s0=int(np.log2(self.cellsPerBlock[0]*self.noBlocks[0]))
         s1=int(np.log2(self.cellsPerBlock[1]*self.noBlocks[1]))
         for i in range(s0-len(bitx)):
             bitx.append(0)
         for i in range(s1-len(bity)):
             bity.append(0)
         tx=np.zeros(s0,dtype=np.bool)
         ty=np.zeros(s1,dtype=np.bool)
         px=np.empty((s0,2))
         py=np.empty((s1,2))
         for i,b in enumerate(bitx):
             x=zero[0]+mod(i+1,self.noBitsX)*self.bitDistance
             y=zero[1]+((i+1)/self.noBitsY)*self.bitDistance
             px[i]=(x,y)
             tx[i]=b
         for i,b in enumerate(bity):
             x=zero[0]+(self.noBitsX-mod(i+1,self.noBitsX)-1)*self.bitDistance
             y=zero[1]+(self.noBitsY-(i+1)/self.noBitsY-1)*self.bitDistance
             py[i]=(x,y)
             ty[i]=b
         return px,py,tx,ty
开发者ID:drueffer,项目名称:apage_rom,代码行数:25,代码来源:PatternGenerator.py


示例20: rebuild_id_header

def rebuild_id_header(channels, frequency, blocksize_short, blocksize_long):
	packet = OggPacket()

	buf = OggpackBuffer()
	ogg.oggpack_write(buf, 0x01, 8)
	for c in 'vorbis':
		ogg.oggpack_write(buf, ord(c), 8)
	ogg.oggpack_write(buf, 0, 32)
	ogg.oggpack_write(buf, channels, 8)
	ogg.oggpack_write(buf, frequency, 32)
	ogg.oggpack_write(buf, 0, 32)
	ogg.oggpack_write(buf, 0, 32)
	ogg.oggpack_write(buf, 0, 32)
	ogg.oggpack_write(buf, len(bin(blocksize_short)) - 3, 4)
	ogg.oggpack_write(buf, len(bin(blocksize_long)) - 3, 4)
	ogg.oggpack_write(buf, 1, 1)

	if hasattr(ogg, 'oggpack_writecheck'):
		ogg.oggpack_writecheck(buf)

	packet.bytes = ogg.oggpack_bytes(buf)
	buf = ctypes.create_string_buffer(bytes(buf.buffer[:packet.bytes]), packet.bytes)
	packet.packet = ctypes.cast(ctypes.pointer(buf), ctypes.POINTER(ctypes.c_char))
	packet.b_o_s = 1
	packet.e_o_s = 0
	packet.granulepos = 0
	packet.packetno = 0

	return packet
开发者ID:HearthSim,项目名称:python-fsb5,代码行数:29,代码来源:vorbis.py



注:本文中的bin函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python bitarray函数代码示例发布时间:2022-05-24
下一篇:
Python ascii函数代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap