adjoint.rb revision ca68055161f6beb2ec248e789ab787e6de69bd18