anchor.diff:      Most of the work here is done through the JavaScript
       <em>apps/assests/javascripts/lti_resource.js)</em>. In the code
       below, OpenDSA first checks if the course offering exists or not. If the
  -    course offering is present then OpenDSA shows a tree view of exercises
  +    course offering is present, then OpenDSA shows a tree view of exercises
       directly.
       <br><br>
   
  
positive.code:       @terms = Term.on_or_future
      end
      </pre>
      Then OpenDSA creates a launch url of OpenDSA from the request object.
      Protocol is <em>http</em> or <em>https</em>, and host with port is a
      complete url where OpenDSA is hosted.
      <br><br>
  
    <pre>
      @launch_url = request.protocol + request.host_with_port + "/lti/launch"
    </pre>
  
    After that OpenDSA validates if the request received from the Tool Consumer
    is an authentic LTI request or not.<br><br>
    <pre>
      # must include the oauth proxy object
  
negative.code:     end
      </pre>
      Once the LMS instance is fetched, OpenDSA fetches the course offering using
      the LMS instance id and course number received in the request (in
      custom_canvas_course_id parameter). In OpenDSA, a course offering is a
      unique way to identify a course. <br><br>
      <pre>
  