translate([5,0,0])
    rotate([0,90,0])
    cylinder(d=4, h=25, $fn=64);
    
    translate([18,0,0])
    rotate([0,90,0])
    cylinder(d=5, h=1, $fn=64);

    translate([9,0,0])
    rotate([0,90,0])
    cylinder(d=5, h=1, $fn=64);
    
    translate([20,0,-1.5]) {
        
        cube([3, 6, 3]);
        translate([5,0,0])
        cube([2, 6, 3]);
        
        translate([8,0,0])
        cube([2, 6, 3]);
        
        translate([7,0,0])
        cube([2, 4, 3]);
    }
    
    translate([-6,0,0])
    sphere(r=2, $fn=64);

difference() {
    hull()
{
        translate([2,0,0])
        rotate([0,90,0])
        cylinder(d=4, h=4, $fn=64);

        union() {
            translate([0,2,0])
            cylinder(d=10, h=4, $fn=64, center=true);
            translate([0,-2,0])
            cylinder(d=10, h=4, $fn=64, center=true);
        }
    }
    
        translate([0,2,0])
        cylinder(d=6, h=10, $fn=64, center=true);
        translate([0,-2,0])
        cylinder(d=6, h=10, $fn=64, center=true);
}