BLS=1000
def sti(x):
if len(x)<BLS:
if x=='':
return 0
return int(x)
return sti(x[:-BLS])*(10**BLS)+int(x[-BLS:])
def its(x):
if x<10**BLS:
return str(x)
os=str(x%(10**BLS))
os='0'*(BLS-len(os))+os
return its(x//(10**BLS))+os
t=int(input())
for _ in range(t):
a,b,c,x,y,d=map(sti,input().split())
an=a*((d+x-1)//x)
an=min(an,(a+b*y)*(d//(x+y))+a+b*max(0,d%(x+y)-x))
if d>=x:
an=min(an,a*(d//x)+b*(d%x)+(c-b)*max(0,d%x-y*(d//x)))
an=min(an,a*(d//x)+b*(d%x)+(c-b)*max(0,d%x-y))
if d>=x+y:
an=min(an,a+b*y+c*(d-x-y))
an=min(an,(a+b*y)*(d//(x+y))+c*(d%(x+y)))
print(its(an))