#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,c1,c2,c3,c4;
int main(){
    int T;
    int p1,p2;
    int num=0;
    cin>>T;
    while(T--){
        cin>>a>>b>>c>>d>>c1>>c2>>c3>>c4;
        if(a>=c) {
            p1=a*c1+(a-c)*c2+b*c4;
            if(a>=d){
            p2=d*c2+(a-d)*c1+b*c3;
            }
            else{
            p2=a*c2+(d-a)*c4+c*c3;
            }
        }
        if(a<c){
            p1=a*c1+(c-a)*c3+d*c4;
            if(a>=d){
                p2=c2*d+(a-d)*c1+b*c3;
            }
            else{
                p2=a*c2+(d-a)*c4+c*c3;
            }
        }
        if(p1>=p2){
            cout<<p1<<endl;
        }
        else{
            cout<<p2<<endl;
        }
        p1=0,p2=0;
    }
    return 0;
}
//只要将c与d被填满的几种情况分别列出,最后比较哪种最小输出就行。