    void routingResult() throws URISyntaxException {
        final RoutingResultBuilder builder = RoutingResult.builder();
        final RoutingResult routingResult = builder.path("/foo")
                                                   .query("bar=baz")
                                                   .rawParam("qux", "quux")
                                                   .negotiatedResponseMediaType(MediaType.JSON_UTF_8)
                                                   .build();
        assertThat(routingResult.isPresent()).isTrue();
        assertThat(routingResult.path()).isEqualTo("/foo");
        assertThat(routingResult.query()).isEqualTo("bar=baz");
        assertThat(routingResult.pathParams()).containsOnly(new SimpleEntry<>("qux", "quux"));
        assertThat(routingResult.negotiatedResponseMediaType()).isSameAs(MediaType.JSON_UTF_8);
    }
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.