Solving nonlinear principal-agent problems using bilevel programming · Study