def findXorLtoR(l, r):
    return findXor(r) ^ findXor(l - 1)


def findXor(n):
    if n % 4 == 1:
        return 1
    if n % 4 == 2:
        return n + 1
    if n % 4 == 3:
        return 0
    if n % 4 == 0:
        return n


l = 5
r = 12
print(findXorLtoR(l, r))

0d15806dc076b03cbc277a68f7f203195cdd2ab1
def findXorLtoR(l, r):
    return findXor(r) ^ findXor(l - 1)


<mask token>

def findXorLtoR(l, r):
    return findXor(r) ^ findXor(l - 1)


def findXor(n):
    if n % 4 == 1:
        return 1
    if n % 4 == 2:
        return n + 1
    if n % 4 == 3:
        return 0
    if n % 4 == 0:
        return n


<mask token>

def findXorLtoR(l, r):
    return findXor(r) ^ findXor(l - 1)


def findXor(n):
    if n % 4 == 1:
        return 1
    if n % 4 == 2:
        return n + 1
    if n % 4 == 3:
        return 0
    if n % 4 == 0:
        return n


<mask token>
print(findXorLtoR(l, r))

def findXorLtoR(l, r):
    return findXor(r) ^ findXor(l - 1)


def findXor(n):
    if n % 4 == 1:
        return 1
    if n % 4 == 2:
        return n + 1
    if n % 4 == 3:
        return 0
    if n % 4 == 0:
        return n


l = 5
r = 12
print(findXorLtoR(l, r))
