Backward function basic question

Hi,
In the autograd tutorial (https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html) - it says o = 1/4(sum(zi) and zi = 3*(x+3)^2 but then it says do/dx = 3/2(x+2) but dz/dx = 3/2(x+2) - so why is do/dx is being called same as dz/dx?

Also if I call backward on z with gradients = [[1,1],[1,1]], then x.grad = [[18,18],[18,18]]

becase dz_j / dx_i = 0 for j != i