Пример #1
0
def gen_stop_data(ses, cur_session):
    stop_request = pokemon_pb2.stop_request()
    stop_request.time = 2  #1
    #stop_request.rpc_id = 9077956684869009422 #3 static
    stop_request.rpc_id = 2212820743501119519 - randint(0, 999)  #3 static
    stop_request.unk1 = cur_session[1]  #-randint(0,9) #7
    stop_request.unk2 = cur_session[2]  #-randint(0,9) #8
    stop_request.unk3 = 0x4049000000000000  #9 static
    stop_request.unknown12 = randint(0, 999999)  #12 static
    stop_request.sess.ses1 = ses.session_hash  #12
    stop_request.sess.time = ses.session_live  #12
    stop_request.sess.ses2 = ses.session_id  #12

    req1 = stop_request.requests.add()
    req1.type = 101
    req1.message.unknown4 = cur_session[0]
    req1.message.unknown5 = cur_session[1]  #-randint(0,9)
    req1.message.unknown6 = cur_session[2]  #-randint(0,9)
    req1.message.unknown7 = cur_session[1]  #-randint(0,9) #last-1
    req1.message.unknown8 = cur_session[2]  #-randint(0,9) #last
    req2 = stop_request.requests.add()
    req2.type = 126
    req5 = stop_request.requests.add()
    req5.type = 4
    req3 = stop_request.requests.add()
    req3.type = 129
    req4 = stop_request.requests.add()
    req4.type = 5
    req4.message.unknown4 = '05daf51635c82611d1aac95c0b051d3ec088a930'  #static
    location.set_location_coords(location.l2f(cur_session[1]),
                                 location.l2f(cur_session[2]),
                                 location.l2f(0x4049000000000000))
    return stop_request.SerializeToString()
Пример #2
0
def gen_stop_data(ses,cur_session):
	stop_request = pokemon_pb2.stop_request()
	stop_request.time = 2 #1
	#stop_request.rpc_id = 9077956684869009422 #3 static
	stop_request.rpc_id = 2212820743501119519-randint(0,999) #3 static
	stop_request.unk1 = cur_session[1]#-randint(0,9) #7
	stop_request.unk2 = cur_session[2]#-randint(0,9) #8
	stop_request.unk3 = 0x4049000000000000 #9 static
	stop_request.unknown12 = randint(0,999999) #12 static
	stop_request.sess.ses1 = ses.session_hash #12
	stop_request.sess.time = ses.session_live #12
	stop_request.sess.ses2 = ses.session_id #12
	
	req1 = stop_request.requests.add()
	req1.type = 101
	req1.message.unknown4 = cur_session[0]
	req1.message.unknown5 = cur_session[1]#-randint(0,9)
	req1.message.unknown6 = cur_session[2]#-randint(0,9)
	req1.message.unknown7 = cur_session[1]#-randint(0,9) #last-1
	req1.message.unknown8 = cur_session[2]#-randint(0,9) #last
	req2 = stop_request.requests.add()
	req2.type = 126
	req5 = stop_request.requests.add()
	req5.type = 4
	req3 = stop_request.requests.add()
	req3.type = 129
	req4 = stop_request.requests.add()
	req4.type = 5
	req4.message.unknown4 = '05daf51635c82611d1aac95c0b051d3ec088a930' #static
	location.set_location_coords(location.l2f(cur_session[1]),location.l2f(cur_session[2]),location.l2f(0x4049000000000000))
	return stop_request.SerializeToString()
Пример #3
0
def walk_random():
	COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords()
	COORDS_LATITUDE=location.l2f(COORDS_LATITUDE)
	COORDS_LONGITUDE=location.l2f(COORDS_LONGITUDE)
	COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE)
	COORDS_LATITUDE=COORDS_LATITUDE+config.steps
	COORDS_LONGITUDE=COORDS_LONGITUDE+config.steps
	location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
Пример #4
0
def walk_random_l(pok):
    COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE = location.get_location_coords(
    )
    COORDS_LATITUDE = location.l2f(pok[1])
    COORDS_LONGITUDE = location.l2f(pok[1])
    COORDS_ALTITUDE = location.l2f(COORDS_ALTITUDE)
    location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE,
                                 COORDS_ALTITUDE)
Пример #5
0
def walk_random():
    COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE = location.get_location_coords(
    )
    COORDS_LATITUDE = location.l2f(COORDS_LATITUDE)
    COORDS_LONGITUDE = location.l2f(COORDS_LONGITUDE)
    COORDS_ALTITUDE = location.l2f(COORDS_ALTITUDE)
    COORDS_LATITUDE = COORDS_LATITUDE + config.steps
    COORDS_LONGITUDE = COORDS_LONGITUDE + config.steps
    location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE,
                                 COORDS_ALTITUDE)
Пример #6
0
def walk_random():
	COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords()
	COORDS_LATITUDE=location.l2f(COORDS_LATITUDE)
	COORDS_LONGITUDE=location.l2f(COORDS_LONGITUDE)
	COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE)
	random_Angle=random.random()*math.pi*2	
	COORDS_LATITUDE=COORDS_LATITUDE+(config.steps*math.sin(random_Angle))
	COORDS_LONGITUDE=COORDS_LONGITUDE+(config.steps*math.cos(random_Angle))
	print '[+] perform random walk %.7f %.7f'%(COORDS_LATITUDE,COORDS_LONGITUDE)
	location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
Пример #7
0
def walk_circle(edge):
	a=2*math.pi/edge
	i=1
	print '[+] circular walk'
	while (edge > 0):		
		COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords()
		COORDS_LATITUDE=location.l2f(COORDS_LATITUDE)
		COORDS_LONGITUDE=location.l2f(COORDS_LONGITUDE)
		COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE)
		COORDS_LATITUDE=COORDS_LATITUDE+(config.steps*math.sin(a*i))
		COORDS_LONGITUDE=COORDS_LONGITUDE+(config.steps*math.cos(a*i))
		#print '[+] perform circular walk %.7f %.7f'%(COORDS_LATITUDE,COORDS_LONGITUDE)
		location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
		edge=edge-1
		i=i+1
		time.sleep(2)
	print '[+] done circle'
Пример #8
0
def work_with_stops(current_stop,ses,new_rcp_point):
	COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords()
	TARGET_LATITUDE=location.l2f(current_stop[1])
	TARGET_LONGITUDE=location.l2f(current_stop[2])
	TARGET_ALTITUDE=location.l2f(0x4049000000000000)
	Kinder= logic.gen_stop_data(ses,current_stop)
	tmp_api=api.use_api(new_rcp_point,Kinder)
	#proto_all=logic.all_stops(local_ses)
	#api.use_api(new_rcp_point,proto_all)
	#walk_random()
	#time.sleep(3)
	try:
		#walk_random()
		#time.sleep(3)
		if tmp_api is not None:
			map = pokemon_pb2.map()
			map.ParseFromString(tmp_api)
			st= map.sess[0].status
			config.earned_xp+=map.sess[0].amt
			if st==4:
				print "[!] +%s (%s)"%(map.sess[0].amt,config.earned_xp)
			elif st==3:
				print "[!] used"
				#item full
			elif st==2:
				print "[!] charging"
			elif st==1:
				print "[!] walking.."
				#walk_random()
				expPerHour()
				time.sleep(14)
				work_with_stops(current_stop,ses,new_rcp_point)
			else:
				print "[?]:",st
		else:
			print '[-] tmp_api empty'
	except:
		print '[-] error work_with_stops - Trying to restart process'
		restartProcess()
Пример #9
0
def catch(maps, local_ses, new_rcp_point):
    data_list = location.get_near_p(maps)
    data_list = sorted(data_list, key=lambda x: x[5])
    if len(data_list) > 0:
        print
        print '[!] found %s pokemon' % (len(data_list), )
        for idx, e in enumerate(data_list):
            if (e[0] not in config.list_banned_Pokemon):  #Banned Pokemon
                print '[!] %s Type:%s its %s m away' % (
                    idx,
                    e[0],
                    e[len(e) - 1],
                )
        print
        for idx, pok in enumerate(data_list):
            if (pok[0] not in config.list_banned_Pokemon):  #Banned Pokemon
                #print '[!] %s Type:%s its %s m away'%(idx,pok[0],pok[len(pok)-1],)
                #if pok[0] < 22:
                if pok[len(pok) - 1] < 600:
                    print '[!] Trying to catch Type:%s its %s m away' % (
                        pok[0],
                        round(
                            location.get_distance(location.get_lat(),
                                                  location.get_lot(), pok[1],
                                                  pok[2]), 3),
                    )
                    lat1 = location.l2f(location.get_lat())
                    lot1 = location.l2f(location.get_lot())
                    lat2 = location.l2f(pok[1])
                    lot2 = location.l2f(pok[2])
                    #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2)
                    if (lat1 > lat2):
                        while (lat1 < lat2):
                            lat1 = lat1 - config.steps
                            location.set_lat(lat1)
                            location.set_lot(lot1)
                            info_prot = logic.get_info(local_ses.ses, pok)
                            tmp_api = api.use_api(new_rcp_point, info_prot)
                            time.sleep(2)
                    else:
                        while (lat1 < lat2):
                            lat1 = lat1 + config.steps
                            location.set_lat(lat1)
                            location.set_lot(lot1)
                            info_prot = logic.get_info(local_ses.ses, pok)
                            tmp_api = api.use_api(new_rcp_point, info_prot)
                            time.sleep(2)
                    if (lot1 > lot2):
                        while (lot1 > lot2):
                            lot1 = lot1 - config.steps
                            location.set_lat(lat1)
                            location.set_lot(lot1)
                            info_prot = logic.get_info(local_ses.ses, pok)
                            tmp_api = api.use_api(new_rcp_point, info_prot)
                            time.sleep(2)
                    else:
                        while (lot2 > lot1):
                            lot1 = lot1 + config.steps
                            location.set_lat(lat1)
                            location.set_lot(lot1)
                            info_prot = logic.get_info(local_ses.ses, pok)
                            tmp_api = api.use_api(new_rcp_point, info_prot)
                            time.sleep(2)
                    #catch_prot= logic.catch_it(local_ses.ses,pok)
                    #tmp_api=api.use_api(new_rcp_point,catch_prot)
                    tmp_api = catch_t(local_ses, pok, new_rcp_point)
                    if tmp_api is not None:
                        catch_status = pokemon_pb2.catch_status()
                        catch_status.ParseFromString(tmp_api)
                        if catch_status.sess[0].status:
                            print "[+] " + datetime.datetime.now().strftime(
                                "%H:%M:%S") + " caught pok... %s" % (
                                    catch_status.sess[0].status, )
                    else:
                        print '[-] catch data is none'
                    #exit()
                #exit()
                #walk_random()
    walk_random()
Пример #10
0
def work_with_stops(current_stop, ses, new_rcp_point):
    lat1 = location.l2f(location.get_lat())
    lot1 = location.l2f(location.get_lot())
    lat2 = location.l2f(current_stop[1])
    lot2 = location.l2f(current_stop[2])
    #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2)
    walk_to_s = True
    if walk_to_s:
        if (lat1 > lat2):
            while (lat1 < lat2):
                lat1 = lat1 - config.steps * 5
                location.set_lat(lat1)
                location.set_lot(lot1)
                info_prot = logic.gen_stop_data_pre(ses, current_stop)
                tmp_api = api.use_api(new_rcp_point, info_prot)
                time.sleep(1)
        else:
            while (lat1 < lat2):
                lat1 = lat1 + config.steps * 5
                location.set_lat(lat1)
                location.set_lot(lot1)
                info_prot = logic.gen_stop_data_pre(ses, current_stop)
                tmp_api = api.use_api(new_rcp_point, info_prot)
                time.sleep(1)
        if (lot1 > lot2):
            while (lot1 > lot2):
                lot1 = lot1 - config.steps * 5
                location.set_lat(lat1)
                location.set_lot(lot1)
                info_prot = logic.gen_stop_data_pre(ses, current_stop)
                tmp_api = api.use_api(new_rcp_point, info_prot)
                time.sleep(1)
        else:
            while (lot2 > lot1):
                lot1 = lot1 + config.steps * 5
                location.set_lat(lat1)
                location.set_lot(lot1)
                info_prot = logic.gen_stop_data_pre(ses, current_stop)
                tmp_api = api.use_api(new_rcp_point, info_prot)
                time.sleep(1)
    Kinder = logic.gen_stop_data(ses, current_stop)
    tmp_api = api.use_api(new_rcp_point, Kinder)
    try:
        if tmp_api is not None:
            map = pokemon_pb2.map()
            map.ParseFromString(tmp_api)
            st = map.sess[0].status
            if map.sess[0].amt is not None:
                config.earned_xp += map.sess[0].amt
            if st == 4:
                print "[!] " + datetime.datetime.now().strftime(
                    "%H:%M:%S") + " bag full +%s (%s)" % (map.sess[0].amt,
                                                          config.earned_xp)
            elif st == 3:
                print "[!] " + datetime.datetime.now().strftime(
                    "%H:%M:%S") + " cooldown"
            elif st == 2:
                print "[!] " + datetime.datetime.now().strftime(
                    "%H:%M:%S") + " charging"
            elif st == 1:
                print "[!] " + datetime.datetime.now().strftime(
                    "%H:%M:%S") + " +%s (%s)" % (map.sess[0].amt,
                                                 config.earned_xp)
                #work_with_stops(current_stop,ses,new_rcp_point)
            else:
                print "[?]:", st
        else:
            print '[-] tmp_api empty'
    except:
        print '[-] error work_with_stops'
Пример #11
0
def catch(maps,local_ses,new_rcp_point):
	data_list=location.get_near_p(maps)
	data_list = sorted(data_list, key = lambda x: x[5])
	if len(data_list)>0:
		print
		print '[!] found %s pokemon'%(len(data_list),)
		for idx, e in enumerate(data_list):
			if(e[0] not in config.list_banned_Pokemon): #Banned Pokemon
				print '[!] %s Type:%s its %s m away'%(idx,e[0],e[len(e)-1],)
		print 
		for idx, pok in enumerate(data_list):
			if(pok[0] not in config.list_banned_Pokemon): #Banned Pokemon
				#print '[!] %s Type:%s its %s m away'%(idx,pok[0],pok[len(pok)-1],)
				#if pok[0] < 22:
				if pok[len(pok)-1] < 600:
					print '[!] Trying to catch Type:%s its %s m away'%(pok[0],round(location.get_distance(location.get_lat(),location.get_lot(),pok[1],pok[2]),3),)
					lat1=location.l2f(location.get_lat())
					lot1=location.l2f(location.get_lot())
					lat2=location.l2f(pok[1])
					lot2=location.l2f(pok[2])
					#print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2)
					if (lat1>lat2):
						while(lat1<lat2):
							lat1=lat1-config.steps
							location.set_lat(lat1)
							location.set_lot(lot1)
							info_prot= logic.get_info(local_ses.ses,pok)
							tmp_api=api.use_api(new_rcp_point,info_prot)
							time.sleep(2)
					else:
						while(lat1<lat2):
							lat1=lat1+config.steps
							location.set_lat(lat1)
							location.set_lot(lot1)
							info_prot= logic.get_info(local_ses.ses,pok)
							tmp_api=api.use_api(new_rcp_point,info_prot)
							time.sleep(2)
					if (lot1>lot2):
						while(lot1>lot2):
							lot1=lot1-config.steps
							location.set_lat(lat1)
							location.set_lot(lot1)
							info_prot= logic.get_info(local_ses.ses,pok)
							tmp_api=api.use_api(new_rcp_point,info_prot)
							time.sleep(2)
					else:
						while(lot2>lot1):
							lot1=lot1+config.steps
							location.set_lat(lat1)
							location.set_lot(lot1)
							info_prot= logic.get_info(local_ses.ses,pok)
							tmp_api=api.use_api(new_rcp_point,info_prot)
							time.sleep(2)
					#catch_prot= logic.catch_it(local_ses.ses,pok)
					#tmp_api=api.use_api(new_rcp_point,catch_prot)
					tmp_api=catch_t(local_ses,pok,new_rcp_point)
					if tmp_api is not None:
						catch_status = pokemon_pb2.catch_status()
						catch_status.ParseFromString(tmp_api)
						if catch_status.sess[0].status:
							print "[+] " + datetime.datetime.now().strftime("%H:%M:%S")+ " caught pok... %s"%(catch_status.sess[0].status,)
					else:
						print '[-] catch data is none'
					#exit()
				#exit()
				#walk_random()
	walk_random()
Пример #12
0
def walk_random_l(pok):
	COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords()
	COORDS_LATITUDE=location.l2f(pok[1])
	COORDS_LONGITUDE=location.l2f(pok[1])
	COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE)
	location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
Пример #13
0
def work_with_stops(current_stop,ses,new_rcp_point):
	lat1=location.l2f(location.get_lat())
	lot1=location.l2f(location.get_lot())
	lat2=location.l2f(current_stop[1])
	lot2=location.l2f(current_stop[2])
	#print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2)
	walk_to_s=True
	if walk_to_s:
		if (lat1>lat2):
			while(lat1<lat2):
				lat1=lat1-config.steps*5
				location.set_lat(lat1)
				location.set_lot(lot1)
				info_prot= logic.gen_stop_data_pre(ses,current_stop)
				tmp_api=api.use_api(new_rcp_point,info_prot)
				time.sleep(1)
		else:
			while(lat1<lat2):
				lat1=lat1+config.steps*5
				location.set_lat(lat1)
				location.set_lot(lot1)
				info_prot= logic.gen_stop_data_pre(ses,current_stop)
				tmp_api=api.use_api(new_rcp_point,info_prot)
				time.sleep(1)
		if (lot1>lot2):
			while(lot1>lot2):
				lot1=lot1-config.steps*5
				location.set_lat(lat1)
				location.set_lot(lot1)
				info_prot= logic.gen_stop_data_pre(ses,current_stop)
				tmp_api=api.use_api(new_rcp_point,info_prot)
				time.sleep(1)
		else:
			while(lot2>lot1):
				lot1=lot1+config.steps*5
				location.set_lat(lat1)
				location.set_lot(lot1)
				info_prot= logic.gen_stop_data_pre(ses,current_stop)
				tmp_api=api.use_api(new_rcp_point,info_prot)
				time.sleep(1)
	Kinder= logic.gen_stop_data(ses,current_stop)
	tmp_api=api.use_api(new_rcp_point,Kinder)
	try:
		if tmp_api is not None:
			map = pokemon_pb2.map()
			map.ParseFromString(tmp_api)
			st= map.sess[0].status
			if map.sess[0].amt is not None:
				config.earned_xp+=map.sess[0].amt
			if st==4:
				print "[!] " + datetime.datetime.now().strftime("%H:%M:%S") + " bag full +%s (%s)"%(map.sess[0].amt,config.earned_xp)
			elif st==3:
				print "[!] " + datetime.datetime.now().strftime("%H:%M:%S")+ " cooldown"
			elif st==2:
				print "[!] " + datetime.datetime.now().strftime("%H:%M:%S")+ " charging"
			elif st==1:
				print "[!] " + datetime.datetime.now().strftime("%H:%M:%S")+ " +%s (%s)"%(map.sess[0].amt,config.earned_xp)
				#work_with_stops(current_stop,ses,new_rcp_point)
			else:
				print "[?]:",st
		else:
			print '[-] tmp_api empty'
	except:
		print '[-] error work_with_stops'
Пример #14
0
import location

print location.l2f(0x3ff6c49b00000000),location.l2f(0x3f57579ca0000000),location.l2f(0x3ff0000000000000)
print location.l2f(0x3ff1c8dcc0000000),location.l2f(0x3f35c54100000000),location.l2f(0x3ff0000000000000)
print location.l2f(0x4000000000000000)
Пример #15
0
def work_stop(local_ses,new_rcp_point):
	proto_all=logic.all_stops(local_ses)
	all_stops=api.use_api(new_rcp_point,proto_all)
	maps = pokemon_pb2.maps()
	try:
		maps.ParseFromString(all_stops)
	except:
		work_stop(local_ses,new_rcp_point)
	if show_pok:
		data_list=location.get_near_p(maps)
		if len(data_list)>0:
			print '[!] found %s pokemon near you'%(len(data_list),)
			for idx, pok in enumerate(data_list):
				print '[!] %s Type:%s its %s m away'%(idx,pok[0],pok[len(pok)-1],)
				#if pok[0] < 22:
				#if pok[len(pok)-1] < 45:
				lat1=location.l2f(location.get_lat())
				lot1=location.l2f(location.get_lot())
				lat2=location.l2f(pok[1])
				lot2=location.l2f(pok[2])
				#print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2)
				if (lat1>lat2):
					while(lat1<lat2):
						lat1=lat1-0.000095
						location.set_lat(lat1)
						location.set_lot(lot1)
						info_prot= logic.get_info(local_ses.ses,pok)
						tmp_api=api.use_api(new_rcp_point,info_prot)
						time.sleep(2)
				else:
					while(lat1<lat2):
						lat1=lat1+0.000095
						location.set_lat(lat1)
						location.set_lot(lot1)
						info_prot= logic.get_info(local_ses.ses,pok)
						tmp_api=api.use_api(new_rcp_point,info_prot)
						time.sleep(2)
				if (lot1>lot2):
					while(lot1>lot2):
						lot1=lot1-0.000095
						location.set_lat(lat1)
						location.set_lot(lot1)
						info_prot= logic.get_info(local_ses.ses,pok)
						tmp_api=api.use_api(new_rcp_point,info_prot)
						time.sleep(2)
				else:
					while(lot2>lot1):
						lot1=lot1+0.000095
						location.set_lat(lat1)
						location.set_lot(lot1)
						info_prot= logic.get_info(local_ses.ses,pok)
						tmp_api=api.use_api(new_rcp_point,info_prot)
						time.sleep(2)
				catch_prot= logic.catch_it(local_ses.ses,pok)
				tmp_api=api.use_api(new_rcp_point,catch_prot)
				print "[+] catched pok..."
				#else:
				#	print '[-] too far away'
				#exit()
				walk_random()
		walk_random()
		time.sleep(2)
	else:
		data_list=location.get_near(maps)
		data_list = sorted(data_list, key = lambda x: x[1])
		if len(data_list)>0:
			print '[+] found: %s Pokestops near you'%(len(data_list),)
			if local_ses is not None and data_list is not None:
				print '[+] starting show'
				if multi:
					a,b=split_list(data_list)
					p = Process(target=work_half_list, args=(a,local_ses.ses,new_rcp_point))
					o = Process(target=work_half_list, args=(a,local_ses.ses,new_rcp_point))
					p.start()
					o.start()
					p.join()
					o.join()
					print '[!] farming done..'
				else:
					for t in data_list:
						if config.debug:
							print '[!] farming pokestop..'
						work_with_stops(t,local_ses.ses,new_rcp_point)
		else:
			walk_random()
			work_stop(local_ses,new_rcp_point)
Пример #16
0
import location

print location.l2f(0x3ff6c49b00000000),location.l2f(0x3f57579ca0000000),location.l2f(0x3ff0000000000000)
print location.l2f(0x3ff1c8dcc0000000),location.l2f(0x3f35c54100000000),location.l2f(0x3ff0000000000000)
print location.l2f(0x4000000000000000)